JNI UnsatisfiedLinkError .jnilib不喜欢

时间:2012-07-10 18:39:27

标签: java macos java-native-interface unsatisfiedlinkerror

我在java中链接jnilib时遇到了一些问题。我收到 Exception in thread "main" java.lang.UnsatisfiedLinkError: no ***.jnlib in java.library.path。 通过我的研究,我发现这可能是由java不知道文件是什么引起的。所以,我告诉它它在Mac文件夹中。我还将文件添加到项目中的每个其他文件夹中。这根本没有任何帮助。该项目是跨平台的,所以我在Windows上尝试了它,当我告诉java查看windows文件夹时dll的加载就好了。我不明白为什么这会在Windows中运行而不是在Mac上运行。任何想法或想法都将受到欢迎。

异常输出是:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no libhidapi-jni-64.jnilib in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758) 
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1045)
        at webstart.OmronIO.<init>(OmronIO.java:30)
        at webstart.Omron.main(Omron.java:13) 

java.library.path是:/ Volumes / UNTITLED / javahidapi / mac。

jinlib的路径是:/ Volumes / UNTITLED / javahidapi / mac。

1 个答案:

答案 0 :(得分:0)

在OSX上,环境变量DYLD_LIBRARY_PATH用于查找共享库(包括.jnilib)。该变量用于初始化java.library.path。

如果在尝试System.loadLibrary()时输出java.library.path的值,您将看到为您尝试加载的库搜索的目录列表。

修改

另请参阅http://create-lab-commons.googlecode.com/svn-history/r222/trunk/java/lib/HIDAPI/README.txt,它似乎适用于您尝试加载的特定库(hidapi),以及您尝试加载它的方式(webstart)。