我在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。
答案 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)。