2

我在 java 中链接 jnilib 时遇到了一些问题。我收到 Exception in thread "main" java.lang.UnsatisfiedLinkError: no ***.jnlib in java.library.path。通过我的研究,我发现这可能是由于 java 不知道该文件是什么引起的。所以,我告诉它它在 Mac 文件夹中。我还将该文件添加到项目中的每个其他文件夹中。这些都没有帮助。该项目是跨平台的,所以当我告诉java查看windows文件夹时,我在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。

4

1 回答 1

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)。

于 2012-07-10T19:21:36.850 回答