web-dev-qa-db-fra.com

Comment ajouter rxtxSerial dans Java.library.path?

Je développe une application en Java en utilisant Eclipse IDE. Mon système d'exploitation est Ubuntu 11. Mon application utilise la bibliothèque RXTX (gnu.io. *) pour la communication série. J'ai ajouté le RXTXomm. fichier jar dans le projet en faisant cela (projet-> Propriétés-> Chemin de masse Java-> ajouter des fichiers externes). Chaque fois que j'exécute mon code, cela me donne cette erreur.

Java.lang.UnsatisfiedLinkError: no rxtxSerial in Java.library.path thrown while loading
gnu.io.RXTXCommDriver
Exception in thread "main" Java.lang.UnsatisfiedLinkError: no rxtxSerial in 
Java.library.path

J'ai même essayé d'installer librxtx-Java.deb. mais cela n'a pas résolu le problème. J'ai cherché dans le système de fichiers et j'ai trouvé que librxtxSerial.so se trouve dans/usr/lib/jni.

Comment puis-je résoudre ce problème?

Merci d'avance

12
Aditya Ponkshe

Trouvez votre pot dans Project -> properties -> Java build path. Cliquez sur le + pour ouvrir les propriétés du JAR, sélectionnez l'emplacement de la bibliothèque native et modifiez-le pour pointer vers la bibliothèque partagée de RXTX (.DLL, .so, .dylib).

16
martijno

Ouvrez le terminal (Ctrl + Alt + T) et vérifiez:

echo $Java_HOME 
 # JDKDIR : /usr/lib/jvm/Java-7-Oracle

puis lancez:

Sudo cp /usr/lib/jni/librxtxSerial.so $Java_HOME/jre/lib/i386/
2
Abdennour TOUMI

Une méthode consiste à définir Java.library.path dans la configuration d'exécution Eclipse pour votre projet. Vous pouvez modifier les arguments VM dans l'onglet Arguments de votre configuration d'exécution (deux façons d'y accéder incluent un clic droit sur le projet-> Exécuter en tant que-> Configurer l'exécution ... et le menu Exécuter- > Exécuter les configurations ...).

Si vous créez un répertoire lib à la racine de votre projet et placez une copie de la bibliothèque RXTX dans le répertoire lib, vous pouvez utiliser l'argument VM (en remplaçant ProjName par le nom de votre projet) .

-Djava.library.path=${project_loc:ProjName}/lib
2
kevind7