java JNI未满足链接错误,jnilib未找到

7fhtutme  于 2022-12-28  发布在  Java
关注(0)|答案(2)|浏览(181)

我在java中链接一个jnilib时遇到了一些问题。我收到了Exception in thread "main" java.lang.UnsatisfiedLinkError: no ***.jnlib in java.library.path。通过我的研究,我发现这可能是由于java不知道文件在哪里造成的。所以,我告诉它它在Mac文件夹中。我还将文件添加到项目中的每个其他文件夹中。所有这些都没有帮助。该项目是跨平台的,所以我在Windows上尝试了DLL'当我告诉java在windows文件夹中查找时,s加载得很好。我不明白为什么这在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.路径为:/卷/无标题/javahidapi/mac.
通往jinlib的路径是:/卷/无标题/javahidapi/mac.

mwg9r5ms

mwg9r5ms1#

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

zkure5ic

zkure5ic2#

我遇到了同样的问题。它没有在任何路径中加载库文件,即使在应用程序参数中使用了- Djava.library.path。我使用的是System.loadLibrary("test")。库名称是libtest.jnilib。前缀和后缀将在执行时添加。
我正在使用Mac M1 Pro。不幸的是,基于ARM的JDK不支持它。切换到非ARM JDK解决了这个问题。

相关问题