【Java基礎知識】JNI入門

一、問題:javah or  javac -hjava

在配置好java的環境變量後,java和javac都是能夠用的,可是用javah就會出現問題。spa

會報錯誤.net

Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/bin/javah" (-1)

blog

後來就在網上搜了一下jdk-10.0.2發現,這個版本的jdk取消了javah,直接改用javac -h代替了get

那咱們就能夠直接使用javac -h了編譯

 

二、除了上面的問題,其他過程可參考:https://my.oschina.net/gschen/blog/1613890table

總結過程:class

(1)編寫java文件,定義native方法,加載步驟4生成的jni動態連接庫;變量

(2)javac編譯java文件爲class文件,javac HelloNative.java -h . 編譯出c頭文件,頭文件裏面聲明瞭native方法;cli

(3)根據頭文件,新建c文件,經過c語言實現native方法;

(4)使用gcc將c文件編譯成動態連接庫,jni文件:

gcc HelloNative.c -o libHelloNative.jnilib -dynamiclib -I/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/include/ -I/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/include/darwin/

(5)運行java程序:java HelloNative

相關文章
相關標籤/搜索