簡體   English   中英

java.lang.UnsatisfiedLinkError:無法加載庫

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

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)在資源路徑([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,文件:/ 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:\\用戶\\ Argenit \\桌面\\ AAA \\ DLL \\ ErgoPointer_64_Bit

DLL \\ ErgoPointer_64_Bit

ErgoPointer_64_Bit

DLL \\ ErgoPointer_64_Bit.dll

ErgoPointer_64_Bit.dll

僅使用基本名稱在調用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);

您也可以在命令行上設置java.library.path。 例如。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM