JNI入門中helloworld常見問題

看了我轉載的那篇JNI入門感受確實寫得很好,可是配置細節沒怎麼說明,我這裏說明一下。java

主要是按照完成helloworld這個程序的步驟出現的問題。全部的程 序都是經過命令行來編譯的。spa

問題一:NotClassDeff....Error
        固然了這個問題絕對是classpath沒有配置好,.;...  這個東西想必你們已經很熟悉了,不過有兩點須要說明:1.注意文件路徑中斜槓的方向,2.在win7中配置好環境變量不須要從新啓動系統,只須要從新啓動命令行。解決了這個問題你應該就能夠獲得.class文件命令行

問題二:javah 不是命令或文件。。。 或javac 不是命令或文件。。。
        這是由於沒有設置好path,只要把java安裝目錄/bin,放在path中便可,還有win7只須要重啓命令行。解決了這兩個問題你就能夠獲得 hello.h文件了開發

問題三:在寫好c程序後使用cl命令編譯成dll會出現:XXX.lib not find 。。。 或 stdio.h not find
        這就像java命令找不到 classpath同樣, 只要添加環境變量 include = vc安裝目錄下的include文件;lib=vc安裝目錄下的lib文件便可,重啓命令行。下面你就會獲得dll文件。io

其餘的一些問題極可能是因爲你的文件名,屬性名等等沒有對應好而形成的,請仔細檢查。
    "java中System.loadLibrary加載的 name"  =  "dll的文件名"
    ".c中應用的頭文件.h" = "java的文件名"
    ".c中的方法名" = "java中native聲明的方法名"
    "java類名要和文件名一致"編譯

另外在說明一下javah這個命令,它和javac不一樣 ,javac只要在當前目錄就能夠編譯.java文件,javah須要在工程的根目錄,好比你的類在包cn.abc下 那麼 你要在cn同級目錄中使用  javah cn.abc.YOURCLASSNAME 入門

以上就是可能出現的一些環境問題,由於使用jni的都應該是有必定開發經驗的了,因此我說的比較籠統。若是有任何問題,歡迎提出來。class

相關文章
相關標籤/搜索