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

(結束) 我使用第一種解決的問題, 更多方法請參考 : 農民阿姨


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM