Chargement dynamique d'une bibliothèque native à l'intérieur de l'applet Java
Je suis en train d'écrire une applet Java qui sera lu à partir d'un utilisateur du port série. Pour cela, je suis en utilisant le Java API Comm en conjonction avec le RXTX bibliothèque. J'ai réussi à lire les données par une application Java mais je n'arrive pas à faire de même à partir d'une applet. Le problème est que le RXTX bibliothèque est une bibliothèque native et je n'ai pas trouvé un moyen de charger cette bibliothèque à l'intérieur de l'applet Java. J'ai trouvé deux articles intéressants (à l'Aide de JNI dans les Applets les références cet article), mais les deux sont de plus de 10 ans et je me demande si il existe une nouvelle solution. Ou si vous pouvez en proposer une autre, je serais ravi de l'entendre!
Vous devez vous connecter pour publier un commentaire.
Utilisation De Java Web Start. Vous pouvez inclure la bibliothèque native que la signature d'un pot et tout devrait fonctionner.
1) mettre le natif de la bibliothèque dans un bocal dans le répertoire RACINE
2) signer TOUS les pots
3) écrire une JNLP le référencement de tous les pots (aller faire une recherche sur la façon d'écrire jnlp s)
après il faut travailler
Tout d'abord, je vous suggère de le faire dans une Applet est probablement une mauvaise idée.
Si vous faire aller de l'avant de toute façon, JNLPAppletLauncher peut aider.
Je ne sais pas pour les applets, d'autres qu'ils sont verrouillés fortement wrt. sécurité/accès les ressources de la machine etc.
Si vous avez besoin d'un web-déploiement de la solution, avez-vous regardé Java Web Start ? Voir en particulier ce Entrée de la FAQ
Franchement, en essayant d'accéder à l'appareil à partir d'un applet Java est une mauvaise idée, même si vous pourriez faire le travail, et le chargement d'une bibliothèque dynamique dans le classique de l'applet est encore pire idée; en fait, je serais étonné si vous pouviez trouver un moyen de tromper un navigateur moderne en le faisant. (Considérer les implications en matière de sécurité.)
Vous êtes mieux, comme l'a suggéré sur d'autres questions, construction d'une application qui peut être lancé avec Web Start.
Je serais réel intéressé par la réponse ici aussi. Ma suggestion serait d'installer le .jar et .dll pour RXTX dans \program files\java\ arbre. On pouvait les installer sur le système cible avant d'essayer d'utiliser l'applet. J'aime l'idée de l'utilisation de Java Web Start. Si vous vous connectez à l'applet, vous pouvez pas lire/écrire des fichiers sur la machine? Si vous pouviez installer le .jar et .dll et l'utiliser par la suite?
Pour windows, je vous conseille d'utiliser "Windows Java Port Com Série Pilote" plutôt que rxtx.
Vous pouvez le télécharger à partir http://www.engidea.com/blog/informatica/winjcom/winjcom.html
Je l'ai trouvé beaucoup plus facile à installer et à utiliser et beaucoup plus de bug-gratuit.
J'ai été incapable d'utiliser RXTX avec les dispositifs USB série parce que RXTX crash lorsque le port USB a été débranché. winjcom résolu ces problèmes pour moi, et plus encore.
Je suis encore à essayer de décider comment déployer la DLL, mais je ne suis pas la transpiration, parce que je n'attends pas la DLL pour "Windows Java Port Com Série Pilote" pour changer.
-Stosh