web-dev-qa-db-fra.com

java.lang.UnsatisfiedLinkError: no rxtxSerial dans Java.library.path

J'essaie d'utiliser la bibliothèque de communications série rxtx 64 bits (téléchargée à partir de cloudhopper) avec Windows 7 et Eclipse 64 bits. Je reçois le message: Java.lang.UnsatisfiedLinkError: no rxtxSerial in Java.library.path. Les dll sont dans le répertoire /jre/lib ainsi que le Windows/System32. Le RXTXcomm.jar se trouve dans le chemin de construction d'Eclipse ainsi que dans le répertoire jre/lib/ext. J'ai exécuté le moniteur de processus en arrière-plan et je vois que RXTXcomm.jar, rxtxSerial.dll et rxtxParallel.dll ont tous été trouvés et ont été ouverts. Je ne comprends donc pas vraiment pourquoi ce problème se produit. 

Aucune suggestion.

15
sldahlin

Allez dans Projet -> Propriétés -> Chemin de construction Java -> Trouvez votre .jar. Cliquez sur + pour ouvrir les propriétés du fichier JAR . Sélectionnez l'emplacement de la bibliothèque native et modifiez-le pour qu'il pointe vers la bibliothèque partagée de RXTX (.DLL, .so, .dylib).

15
Paulo Gurgel

Vous pouvez installer le paquet librxtx-Java à partir du référentiel pour Ubuntu. 

7
GowhamanB

Vous pouvez également ajouter un argument de machine virtuelle:

-Djava.library.path=c:\path\to\dll\

ou

-Djava.library.path=/path/to/lib/

Cela a fonctionné pour moi. Reportez-vous également à cette question .

6
Alberto de Paola

Utilisateur Windows: mon problème était en fait de placer les fichiers rxtxSerial.dll et rxtxParallel.dll dans le mauvais répertoire.

Dans mon cas, ils se trouvaient dans [...]/jdk1.7.0_09/bin/au lieu de [...]/jre7/bin/, bien que les chemins puissent différer pour différentes versions de Java. .

Après tout, c’est logique, si nous voulons que notre JAR fonctionne en dehors de notre IDE, nous devons avoir les dll dans notre environnement Java, et non dans notre environnement de développement :)

4
aviggiano

Je résous ce problème en ajoutant rxtxSerial.dll [jre 1.8.0_45/bin] et RxTxcomm.jar [jre 1.8.0_45/lib/ext] 

3
A.P.Code

Hy, j'ai eu le même problème lors de l'intégration du RXTXcomm dans Netbeans sous Ubuntu 11.10 . Je suppose que vous ne copiez pas les fichiers au bon endroit, du moins c'était mon problème.

Sous Ubuntu, Java est installé sous usr/lib/jvm. MAIS j'ai eu beaucoup de bûcherons (ex - Java-7-openjdk-i386 , Java-7-common , Java-6-openjdk ...). Dans Netbeans, je vérifie quel est le chemin du JDK inclus dans le projet: c’est Java-7-openjdk-i386 . donc j'ai pris le fichier rxtxSerial.so (sous Windows, il s'agit de rxtxSerial.dll) et je l'ai copié dans Java-7-openjdk-i386/jre/bin et cela a fonctionné comme un charme. 

J'espère que ça aide.

2
Borissow

J'avais le même problème même après l'installation du fichier RXTXcomm.jar dans le répertoire Java\jdk\lib. D'après les instructions de http://www.jcontrol.org/download/readme_rxtx_en.html J'ai localisé les fichiers rxtxSerial.dll et rxtxParallel.dll. Les placer dans le répertoire bin n'a pas aidé, mais les placer dans le répertoire lib avec le fichier RXTXcomm.jar a résolu le problème.

2
mkstlwtz

J'ai eu le même problème. J'ai donc installé JDK 32 bits et ajouté ces fichiers RxTx (x86) au dossier Program files (x86)/Java/... au lieu de Program files/Java ... folder. J'ai aussi ajouté ces fichiers RxTx .dll (x86) au dossier/System32 . Après cela, le problème a été résolu dans mon application.

1
Alias Neo

FIXED:

lorsque vous utilisez IDE tels que Netbeans, il possède son propre répertoire pour le JRE. Si vous avez probablement installé vos pilotes RXTX, mais lorsque vous exécutez le fichier JAR en dehors de votre IDE, cette erreur se produit ... - Solution installez les pilotes RXTX également dans le répertoire JRE Java qui permet d’exécuter tous vos fichiers JAR.

1
user1477929

Sous Netbeans 5.5 sous Windows, je devais cliquer avec le bouton droit de la souris sur Bibliothèques sous Projets sur le côté gauche de l'écran et sélectionnez "Ajouter JAR/Dossier", en choisissant le fichier RXTXcomm.jar. Seulement alors mon

enter code here

devenir une commande valide . En outre, j'ai eu une erreur d'exécution où il n'a pas pu charger le fichier La bibliothèque rxtxSerial.DLL car elle n’a pas pu le trouver. J'avais besoin de Cliquez avec le bouton droit sur le nom du projet, sélectionnez Propriétés, sélectionnez Exécuter sous catégories, et ajoutez un VM Options: entrée de

-Djava.library.path = "C:\fichier-où-tout-jamais-bloqué-rxtxSerial.DLL;% PATH%

Exemple:

-Djava.library.path="C:\rxtx-2.1-7-bins-r2\Windows\i368-mingw32\;%PATH%"

Bien que je sois sûr, il existe plus d’une façon d’ajouter le répertoire à votre chemin, cela a fonctionné pour moi. Notez que j'ai utilisé le NetBeans 5.5/JDK par défaut 1.6.0 n'accepte pas toutes les options par défaut (c'est-à-dire en cliquant sur Suivant jusqu'à la fin), donc je n'ai pas modifié mes chemins Java ou quoi que ce soit . Vous pouvez également copier le fichier * .dll dans C:\Windows\System32 \, Java le trouvera là automatiquement.

Notez que vous ne pouvez pas utiliser le fichier DLL 32 bits lors de l'exécution d'un JRE 64 bits: Vous obtiendrez une erreur semblable à celle-ci:

Can't load IA 32-bit .dll on a AMD 64-bit platform thrown while loading gnu.io.RXTXCommDriver

Pour résoudre ce problème, installez simplement le JDK 32 bits et ajoutez une nouvelle plate-forme dans Netbeans sous Outils-> Plateformes Java-> Ajouter une plate-forme et modifiez le fichier paramètres du projet pour utiliser la plate-forme nouvellement créée. assurez-vous de taper

"import gnu.io.*"

from http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_NetBeans

0
Ferhat KOÇER

J'ai eu le même problème, sur Windows 10 et Eclipse, le problème était que j’avais Java pour 32 et 64 bits, donc j’ai installé la bibliothèque RXTX pour 64 bits, mais Eclipse utilisait l’environnement Java 32 bits; 32 bits copient les fichiers nécessaires dans C: ProgramFilesx86/Java_HOME comme indiqué dans les instructions pour RXTX et le problème a été résolu. J'espère que cela aide quelqu'un. 

0
cesar