2015-07-25 1 views
0

Ceci est mon premier post donc s'il vous plaît nu avec moi ...Essayer d'utiliser RXTXcomm.jar avec un exécutable j'ai fait

j'ai écrit un programme pour communiquer avec un arduino en utilisant le RXTXcomm.jar. Cela fonctionne en éclipse parce que j'ai "Ajouté les Jars Externes" dans l'option d'édition de chemin de classe.

J'ai reçu le didacticiel de ce site Web: http://www.drdobbs.com/jvm/control-an-arduino-from-java/240163864. J'ai d'abord essayé d'exécuter la commande sur ce site Web pour que le RXTXcomm.jar fonctionne sans avoir à utiliser le travail d'éclipse mais je ne pouvais pas le faire fonctionner (après beaucoup de temps et de recherche). Cependant, maintenant je veux faire un .exe hors de mon programme. J'ai utilisé Launch4J pour faire un .exe et cela fonctionne mais, comme avant l'éclipse, l'aspect de la communication série ne fonctionne pas.

J'ai pensé deux corrections, je ne sais pas la vraisemblance soit cependant:

1) Certains comment exporter mon java dans un fichier IUG pot qui contient le RXTXcomm.jar qui a été ajouté lors de l'utilisation de travail Eclipse autour

2) Ecrire un script que je lance une fois pour régler le haut de l'ordinateur qui me permettra d'utiliser le RXTXcomm.jar

l'objectif principal est de créer ce .exe et de mettre tous les fichiers de support dans un dossier avec lui, avec peut-être un fichier setup/readme pour le faire fonctionner sur n'importe quel PC.

Voici mon stackup quand je viens de courir le [myprogram] fichier .jar:

java.exe -jar [myprogram].jar 

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while 
loading gnu.io.RXTXCommDriver 
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no rxtxSe 
rial in java.library.path 
     at java.lang.ClassLoader.loadLibrary(Unknown Source) 
     at java.lang.Runtime.loadLibrary0(Unknown Source) 
     at java.lang.System.loadLibrary(Unknown Source) 
     (AND MORE) 

J'ai très peu de connaissance de ce qui se passe dans les coulisses de java, je comprends la plupart du temps seul le code. Je pense que c'est pourquoi j'ai des problèmes avec ça. Merci pour l'aide!

+0

signifie UnsatisfiedLinkError, il bibliothèque ne peut pas trouver un * natif *, mais la bibliothèque java (RXTXcomm.jar) se trouve (il est ce que tente de charger la bibliothèque native). la bibliothèque native sera habituellement rxtxSerial.dll sur windows, ou librxtxSerial.so sur linux/unix, et soit .so ou .dylib sur mac (pas sûr de hat sur mac). vous devriez avoir la bibliothèque correcte pour votre système (vérifiez également 32/64bit) dans votre chemin de bibliothèque, qui inclut généralement le CWD. – hoijui

+0

Ok, j'ai ce fichier, mais pas n'importe où près de cet exe ... un peu oublié ..., pourriez-vous me dire ce que vous entendez par CWD? Tout ce que j'ai est de 32 bits (en dehors de mon OS), je suis sur Windows 8.1. fyi – Ian

Répondre

0

Merci @hoijui,

J'ai fini par copier juste le rxtxSerial.dll dans le même répertoire que le fichier EXE est exécuté à partir et maintenant il fonctionne. Ce répertoire inclut également le fichier RXTXcomm.jar. Lors de l'exe dans Launch4j j'ai fait un chemin de classe personnalisée: La « classe principale » J'ai choisi le pot je fait de l'éclipse, puis le chemin de classe I ajouté:

echo %CD%\RXTXcomm.jar 

et

echo %CD%\rxtxSerial.dll. 

Je ne suis pas sûr si cela est nécessaire pour travailler mais c'est là et ça marche donc je ne suis pas en train de jouer avec.

Merci pour l'aide @hoijui