mac os 如何加载 Java Native/Shared Library (.jnilib)

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.
" + 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.
" + e);
      System.exit(1);
    }
  }
	
  public static void main(String argv[])
  	{
    CkZip zip = new CkZip();
    System.out.println(zip.version());
	}
  }

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

原文地址:https://www.cnblogs.com/chaoren399/p/6232467.html