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());
}
}

(结束) 我使用第一种解决的问题, 更多方法请参考 : 农民阿姨

04-25 14:29
查看更多