2010-10-04 2 views
0

J'utilise RXTX dans mon application Java qui inclut une bibliothèque JNI. J'ai placé le fichier .jni dans /Libray/Java/Extensions. Quand je démarre mon application manuellement via l'java -jar /path/to/app.jar habituel tout fonctionne bien. Cependant, lorsque je tente de démarrer via Netbeans ou Ant il échoue avecL'application Java charge JNI différemment lorsqu'elle est démarrée via Ant

[java] java.lang.UnsatisfiedLinkError: /Library/Java/Extensions/librxtxSerial.jnilib: no suitable image found. Did find: /Library/Java/Extensions/librxtxSerial.jnilib: no matching architecture in universal wrapper thrown while loading gnu.io.RXTXCommDriver 
[java] Exception in thread "main" java.lang.UnsatisfiedLinkError: /Library/Java/Extensions/librxtxSerial.jnilib: no suitable image found. Did find: /Library/Java/Extensions/librxtxSerial.jnilib: no matching architecture in universal wrapper 
[java]  at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
[java]  at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1823) 
[java]  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738) 
[java]  at java.lang.Runtime.loadLibrary0(Runtime.java:823) 
[java]  at java.lang.System.loadLibrary(System.java:1045) 
[java]  at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83) 

comportement analogique lorsque je déplace le .jni ailleurs et point la machine virtuelle Java à l'aide -Djava.library.path. Cela fonctionne manuellement mais échoue avec Ant.

J'utilise Java 1.6 64Bit, Ant 1.7.1, RXTX 2.1-7r2 (stable) sous Mac OS X 10.6.4

Répondre

0

Votre tâche ant java ont <jvmarg value="-Djava.library.path=location-of-your-native-library"/> ensemble?

+0

Merci pour votre réponse. Oui, j'ai essayé cette ligne dans mon build.xml. C'est ce que je voulais décrire comme un comportement d'anologue. Il échoue avec la même erreur que j'ai posté. – BlueDog