關於java jni編譯javac javah的問題 – JAVA編程語言程序開發技術文章

javac  編譯class文件命令,需要註意的是當類B中import類A時,在編譯B時要包含A的路徑,如
  project  src  com.jl.test  A.java
  com.jl.test2 B.java
  B中importA,在編譯B時應該  : javac  -cp ~/project/src  B.java       (-cp :classpath簡稱,要保證~/project/src  下能找到如B中描述的 import com.jl.test.A;)(~/project/src 為相對路徑,在linux下是相對路徑,windows下可寫絕對路徑,如D:/project/src)
  javah  將class文件編譯成。h文件,保證文件中包含native方法,主要完成調編譯成的so文件。
  退到src 下,或者你的包名外的目錄,"com"外,執行  javah -jni com.jl.test2.B,    (不帶class擴展名,自動默認找class文件)
  ok
  會在com路徑外生成 Java_com_jl_test2_B.h
  如果在編譯中還報導入第三方包的文件報錯可以先註釋掉報錯文件再編譯。

作者 sdtarena

發佈留言