2015-06-11 144 views
0

Java本地鏈接我試圖從代碼加載本地庫這樣的:代碼錯誤

StringBuilder builder = new StringBuilder(System.getenv("ProgramFiles")); 
builder.append("\\MyLib\\custom_library.dll"); 
System.load(builder.toString().replace("\\", "/")); 

.load方法似乎是工作。但是,當我嘗試訪問從指定custom_library.dll任何東西,它沒有說:

java.lang.UnsatisfiedLinkError: no custom_library in java.library.path

爲什麼我的圖書館不裝?

+0

[JNI Hello World不滿意的鏈接錯誤]的可能的重複(http://stackoverflow.com/questions/1358541/jni-hello-world-unsatisfied-link-error) – aalku

+0

您是否搜索以前的問題?我想這幾乎每天都會被問到。 – aalku

+0

我確實。但我沒有運氣就嘗試過他們的解決方案! – Sonhja

回答

2

這是當文件不java.library.path存在發生:您需要先檢查C:\Program Files\MyLib目錄中的java.library.path存在

When a Java application loads a native library using the System.loadLibrary() method, the java.library.path is scanned for the specified library. If the JVM is not able to detect the requested library, it throws an UnsatisfiedLinkError.

System.out.println(System.getProperty("java.library.path")); 

如果不存在,則需要配置它,請參閱here

如果仍然出現錯誤,則表明庫存在問題,無法加載。