1. 程式人生 > >jni 無法使用javah的一種辦法

jni 無法使用javah的一種辦法

本機是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標頭檔案

接下來就可以愉快的操作啦