简体   繁体   English

java.lang.UnsatisfiedLinkError:无法加载库

[英]java.lang.UnsatisfiedLinkError: Unable to load library

DLL INSTANCE = (DLL) Native.loadLibrary(Settings.getSingletonInstance().getProperty("default.ergoPointer.path"), DLL.class);

I store the dll path in settings file. 我将dll路径存储在设置文件中。 When i take output of 当我输出

Settings.getSingletonInstance().getProperty("default.ergoPointer.path"

here : C:\\Users\\Argenit\\Desktop\\aaa\\dll\\ErgoPointer_64_Bit.dll 此处: C:\\Users\\Argenit\\Desktop\\aaa\\dll\\ErgoPointer_64_Bit.dll

Error part : 错误部分:

java.lang.UnsatisfiedLinkError: Unable to load library 'C:\\Users\\Argenit\\Desktop\\aaa\\dll\\ErgoPointer_64_Bit.dll': Native library (win32-x86-64/C:\\Users\\Argenit\\Desktop\\aaa\\dll\\ErgoPointer_64_Bit.dll) not found in resource path ([file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/bin/, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/resources/, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/fits.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/json.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/junit-4.8.2.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/kdu_jni.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/log4j-1.2.16.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/JNA/jna-4.1.0.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/JNA/jna-platform-4.1.0.jar, file:/C:/Users/Argenit/Desktop/Pathology_J java.lang.UnsatisfiedLinkError:无法加载库'C:\\ Users \\ Argenit \\ Desktop \\ aaa \\ dll \\ ErgoPointer_64_Bit.dll':本机库(win32-x86-64 / C:\\ Users \\ Argenit \\ Desktop \\ aaa \\ dll \\ ErgoPointer_64_Bit.dll)在资源路径([file:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / bin /,file:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / resources /,文件:/ C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/fits.jar,文件:/ C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/json.jar,文件:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / lib / junit-4.8.2.jar,文件:/ C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/kdu_jni.jar,文件:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / lib / log4j-1.2.16.jar,文件:/ C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/JNA/jna-4.1.0.jar,文件:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / JNA / jna-platform-4.1.0.jar,文件:/ C:/ Users / Argenit / Desktop / Pathology_J AVA/Digital_Pathology/lib/ini4j-0.5.4.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/JNA/, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/gluegen-rt.jar, file:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/jogl.jar]) AVA / Digital_Pathology / lib / ini4j-0.5.4.jar,文件:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / JNA /,文件:/ C:/ Users / Argenit / Desktop / Pathology_JAVA / Digital_Pathology / lib /gluegen-rt.jar,文件:/ C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/lib/jogl.jar])

If i add (dll) as a external class folder in project and write : loadLibrary("ErgoPointer_64_Bit") , it works in this machine but when i take the runnable jar, it couldn' t find ErgoPointer_64_Bit so i want to give absolute path of dll. 如果我将(dll)添加为项目中的外部类文件夹并编写: loadLibrary("ErgoPointer_64_Bit") ,则可以在此计算机上运行,​​但是当我使用可运行的jar时,找不到ErgoPointer_64_Bit因此我想给出绝对路径DLL。 But it doesn' t work for me. 但这对我不起作用。

I also tried : 我也尝试过:

C:\\Users\\Argenit\\Desktop\\aaa\\dll\\ErgoPointer_64_Bit C:\\用户\\ Argenit \\桌面\\ AAA \\ DLL \\ ErgoPointer_64_Bit

dll\\ErgoPointer_64_Bit DLL \\ ErgoPointer_64_Bit

ErgoPointer_64_Bit ErgoPointer_64_Bit

dll\\ErgoPointer_64_Bit.dll DLL \\ ErgoPointer_64_Bit.dll

ErgoPointer_64_Bit.dll ErgoPointer_64_Bit.dll

Set the system property java.library.path before the call Native.loadLibrary() with just the base name. 仅使用基本名称在调用Native.loadLibrary()之前设置系统属性java.library.path。

System.setProperty("java.library.path", 
            "C:\\Users\\Argenit\\Desktop\\aaa\\dll;" 
              + System.getProperty("java.library.path"));
DLL INSTANCE = (DLL) Native.loadLibrary("ErgoPointer_64_Bit", DLL.class);

You can also set the java.library.path on the command line. 您也可以在命令行上设置java.library.path。 eg. 例如。

java "-Djava.library.path=C:\Users\Argenit\Desktop\aaa\dll\" -jar somejar.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法加载Xuggle库:java.lang.UnsatisfiedLinkError - Unable to load Xuggle library: java.lang.UnsatisfiedLinkError 线程“ main”中的异常java.lang.UnsatisfiedLinkError:无法加载库 - Exception in thread “main” java.lang.UnsatisfiedLinkError: Unable to load library JNA java.lang.UnsatisfiedLinkError:无法加载库'./OUNPPM' - JNA java.lang.UnsatisfiedLinkError: Unable to load library './OUNPPM' java.lang.UnsatisfiedLinkError:无法加载库(使用Visual Studio 2015构建) - java.lang.UnsatisfiedLinkError: Unable to load library (with Visual Studio 2015 build) java.lang.UnsatisfiedLinkError:无法加载库“ TSCLIB”:找不到指定的模块 - java.lang.UnsatisfiedLinkError: Unable to load library 'TSCLIB': The specified module could not be found Ghost4J。 java.lang.UnsatisfiedLinkError:无法加载库“ gsdll64” - Ghost4J. java.lang.UnsatisfiedLinkError: Unable to load library 'gsdll64' 为什么我得到:线程“main”中的异常 java.lang.UnsatisfiedLinkError: Unable to load library 'argon2': - Why do I get: Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'argon2': Applet jna.jar-java.lang.UnsatisfiedLinkError:无法加载库 - Applet jna.jar - java.lang.UnsatisfiedLinkError: Unable to load library 线程“ main”中的异常java.lang.UnsatisfiedLinkError:无法加载库“ mediainfo”:找不到指定的模块 - Exception in thread “main” java.lang.UnsatisfiedLinkError: Unable to load library 'mediainfo': The specified module could not be found ghost4j调用ghotscript dll-java.lang.UnsatisfiedLinkError:无法加载库'gsdll32 - ghost4j invoking ghotscript dll - java.lang.UnsatisfiedLinkError: Unable to load library 'gsdll32
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM