jni 無法使用javah的一種辦法
阿新 • • 發佈:2018-12-16
本機是mac環境。
在配置好java的環境變數後,java和javac都是可以用的,但是用javah就會出現問題。
會報錯誤
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/bin/javah" (-1)
在網上搜了各種辦法都不行,後來就進入上面這個錯誤的目錄裡面看,發現別的java命令族都在,唯獨沒有javah。
後來就在網上搜了一下jdk-10.0.2發現,這個版本的jdk取消了javah,直接改用javac -h代替了
那我們就可以直接使用javac -h了
例子如下:
//這段程式碼是網上隨便找的。
原始檔
JNIDemo.java
package base;
public class JNIDemo{
public native void testHello();
public static void main (String args[]){
System.loadLibrary("TestJNI");
JNIDemo jniDemo = new JNIDemo();
jniDemo.testHello();
}
}
然後在命令列輸入:
javac JNIDemo.java -h .
然後會同時生成
.class和.h標頭檔案
接下來就可以愉快的操作啦