【发布时间】:2015-10-07 09:03:58
【问题描述】:
DLL INSTANCE = (DLL) Native.loadLibrary(Settings.getSingletonInstance().getProperty("default.ergoPointer.path"), DLL.class);
我将 dll 路径存储在设置文件中。当我输出
Settings.getSingletonInstance().getProperty("default.ergoPointer.path"
这里:C:\Users\Argenit\Desktop\aaa\dll\ErgoPointer_64_Bit.dll
错误部分:
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) 在资源路径中找不到 ([文件:/C:/Users/Argenit/Desktop/Pathology_JAVA/Digital_Pathology/bin/, 文件:/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_JAVA/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])
如果我在项目中添加 (dll) 作为外部类文件夹并写入:loadLibrary("ErgoPointer_64_Bit"),它可以在这台机器上运行,但是当我使用可运行的 jar 时,它找不到 ErgoPointer_64_Bit 所以我想给出绝对dll的路径。但这对我不起作用。
我也试过了:
C:\Users\Argenit\Desktop\aaa\dll\ErgoPointer_64_Bit
dll\ErgoPointer_64_Bit
ErgoPointer_64_Bit
dll\ErgoPointer_64_Bit.dll
ErgoPointer_64_Bit.dll
【问题讨论】: