Question

J'essaie d'écrire une applet Java capable de lire à partir du port série d'un utilisateur. Pour cela, j'utilise la API Java Comm avec le bibliothèque RXTX . J'ai réussi à lire des données via une application Java locale, mais je n'arrive pas à faire de même depuis un applet. Le problème est que la bibliothèque RXTX est une bibliothèque native et je n'ai pas trouvé de moyen de charger cette bibliothèque dans l'applet Java. J'ai trouvé deux articles intéressants ( JNI dans Applets qui font référence à cet article ), mais les deux ont plus de 10 ans et moi. Je me demande s'il existe une solution plus récente. Ou si vous pouvez suggérer une alternative, j'aimerais l'entendre!

Était-ce utile?

La solution

Utilisez Java Web Start. Vous pouvez inclure la bibliothèque native en tant que fichier jar signé et tout devrait fonctionner.

1) placez les bibliothèques natives dans un fichier jar du répertoire ROOT 2) signer tous les pots 3) écrivez un JNLP référençant tous les bocaux (allez faire une recherche sur comment écrire des jnlp)

après cela devrait fonctionner

Autres conseils

Tout d'abord, je suggérerais que cela dans une applet soit probablement une mauvaise idée.

Si vous y allez quand même, JNLPAppletLauncher peut vous aider.

Je ne sais pas pour les applets, à moins qu’elles ne soient verrouillées. sécurité / accès aux ressources de la machine, etc.

Si vous avez besoin d'une solution déployable sur le Web, avez-vous consulté Java Web Start ? Voir notamment cette entrée de la FAQ

Franchement, essayer d'accéder aux périphériques à partir d'un applet Java est une mauvaise idée, même si vous pouviez le faire fonctionner, et le chargement d'une bibliothèque dynamique dans l'applet classique est une idée encore pire. En fait, je serais étonné si vous pouviez trouver un moyen d'inciter un navigateur moderne à le faire. (Considérez les implications possibles pour la sécurité.)

Il vaut mieux, comme suggéré dans d'autres questions, de créer une application pouvant être lancée avec Web Start.

Je serais vraiment intéressé par la réponse ici aussi. Ma suggestion serait d'installer les fichiers .jar et .dll pour RXTX dans \ program files \ java \ tree. Vous pouvez les installer sur le système cible avant d'essayer d'utiliser l'applet. J'aime l'idée d'utiliser Java Web Start. Si vous signez l'applet, ne pouvez-vous pas lire / écrire un fichier sur la machine? Vous pouvez donc installer les fichiers .jar et .dll, puis les utiliser par la suite?

Pour Windows, nous vous suggérons d'utiliser "Pilote de port série Java et Java Windows" " plutôt que rxtx. Vous pouvez le télécharger à partir de http://www.engidea.com/blog/informatica /winjcom/winjcom.html Je l'ai trouvé beaucoup plus facile à installer et à utiliser et beaucoup plus sans bugs. Je ne pouvais pas utiliser RXTX avec des périphériques série USB car RXTX se bloquerait lorsque le port USB serait débranché. winjcom a résolu ces problèmes pour moi, et plus encore.

J'essaie toujours de décider comment déployer la DLL, mais je ne suis pas en train de la suer, car je ne m'attendais pas à la DLL pour "Pilote de port de communication série Windows Java" & changer. -Stosh

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top