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依賴工具查看下,比較實用