Java应用程序在通过Ant启动时以不同的方式加载JNI
我在Java应用程序中使用RXTX,它包括一个JNI库。我将.jni文件放在Java应用程序在通过Ant启动时以不同的方式加载JNI,java,macos,ant,java-native-interface,rxtx,Java,Macos,Ant,Java Native Interface,Rxtx,我在Java应用程序中使用RXTX,它包括一个JNI库。我将.jni文件放在/Libray/Java/Extensions中。当我通过通常的java-jar/path/to/app.jar手动启动应用程序时,一切正常。然而,当我试图通过Netbeans或Ant启动它时,它失败了 [java]java.lang.unsatifiedlinkerror:/Library/java/Extensions/librxtxSerial.jnilib:未找到合适的映像。确实找到:/Library/Java/
/Libray/Java/Extensions
中。当我通过通常的java-jar/path/to/app.jar手动启动应用程序时,一切正常。然而,当我试图通过Netbeans或Ant启动它时,它失败了
[java]java.lang.unsatifiedlinkerror:/Library/java/Extensions/librxtxSerial.jnilib:未找到合适的映像。确实找到:/Library/Java/Extensions/librxtxSerial.jnilib:加载gnu.io.RXTXCommDriver时,在通用包装器中未抛出匹配的体系结构
线程“main”java.lang.unsatifiedlinkerror:/Library/java/Extensions/librxtxSerial.jnilib中出现[java]异常:未找到合适的映像。确实找到:/Library/Java/Extensions/librxtxSerial.jnilib:通用包装器中没有匹配的体系结构
[java]位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
[java]位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1823)
[java]位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
[java]位于java.lang.Runtime.loadLibrary0(Runtime.java:823)
[java]位于java.lang.System.loadLibrary(System.java:1045)
[java]位于gnu.io.CommPortIdentifier(CommPortIdentifier.java:83)
当我将.jni移动到其他地方并使用-Djava.library.path
将JVM指向它时的模拟行为。它可以手动工作,但在使用Ant时失败
我正在使用Java 1.6 64位、Ant 1.7.1、RXTX 2.1-7r2(稳定)运行Mac OS X 10.6.4您的Ant Java任务设置了
吗?谢谢您的回答。是的,我在build.xml中尝试了这一行。这就是我想要描述的反常行为。它失败了,与我发布的错误相同。
[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)