JNI C調用自己成功的詳細步驟

1. 編寫java測試文件:


這裏附帶package的,不帶的很簡單但是不實用


TestNative.java


package com.test.TestNative;

public class TestNative{
 
  private native int add(int x,int y);
 
  public static void main(String[] args) {
    TestNative hh = new TestNative();
    int r = hh.add(30,20);
    System.out.println("result = "+r);
  }

  static {
     System.load(System.getProperty("user.dir")+"/TestJni.dll");  
  }
}


2.  使用javac來編譯此java文件,生成TestNative.class

3.  用javah -classpath . com.test.TestNative.TestNative生成h頭

4.  用VC之類的IDE(在linux下你直接-shared -fPIC 出一個lib*.so一樣的),把對應h的c文件寫出相應邏輯,再編出對應動態庫

5.  將動態庫拷到com包文件夾外面,用java com.test.TestNative.TestNative來運行


其中javah -classpath . com.test.TestNative.TestNative比較重要。



PS:


在windows下面一定要編譯出release不帶debug的link版本,否則可能會有錯誤。

在DLL報錯link時候,用DEPENDS.EXE這個dll依賴工具查看下,比較實用












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章