【Java基礎知識】JNI入門


1、問題:javah or  javac -h

在配置好java的環境變量后,java和javac都是可以用的,但是用javah就會出現問題。

會報錯誤

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

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

那我們就可以直接使用javac -h了

 

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

總結過程:

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

(2)javac編譯java文件為class文件,javac HelloNative.java -h . 編譯出c頭文件,頭文件里面聲明了native方法;

(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM