1 . 問題描述
今天在開發 Java 解壓.z 文件的時候 需要加載 .jnilib 文件. 總是提示
Native code library failed to load.
java.lang.UnsatisfiedLinkError: no chilkat in java.library.path
2.解決問題
有多種解決方案,這里列出2種
2.1 第一種是 System.load
import com.chilkatsoft.CkZip;
public class Test {
static {
try {
System.load("/Users/joe/chilkatJava/libchilkat.jnilib");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
CkZip zip = new CkZip();
System.out.println(zip.version());
}
}
2.2 第二種是 復制 .jnilib文件到 java.library.path 內,調用 System.loadLibrary
首先檢查 java.library.path
String property = System.getProperty("java.library.path");
StringTokenizer parser = new StringTokenizer(property, ";");
while (parser.hasMoreTokens()) {
System.err.println(parser.nextToken());
}
然后調用System.loadLibrary
import com.chilkatsoft.CkZip;
public class Test {
static {
try {
System.loadLibrary("chilkat");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
CkZip zip = new CkZip();
System.out.println(zip.version());
}
}
(結束) 我使用第一種解決的問題, 更多方法請參考 : 農民阿姨