歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

使用Javah 生成C/C++頭文件的誤區 找不到 ‘XX.XXXX.XX.CLASSNAME’ 的類文件

PS:最近在用jni,一會寫java一會寫c++的感覺真讓人頭疼。然後在使用javah的時候,遇到了一點點小問題,分享給大家。

javah 是一個很棒的工具,可以通過獲取.class 文件,而生成對應的C++文件,其中包含java 代碼中的所有本地方法的JNI 存根,也就是定義成native 的那些方法。如果你正在使用一個類的JNI 存根,而且你已經把這個類定義為包的一部分,那麼必須要完全限定類的命名。感覺javah好像一個反編譯工具一樣。恩,就是這樣。

舉例說明,我在用eclipse編寫一個java文件,隨後eclipse編譯生成一個.class文件,在bin 目錄下,於是我果斷進入我的文件夾中,XX/XXXX/XXX 裡面有我的 .class文件,於是我按照指令,javah -jni XX.XXXX.XX.類名,結果他提示我找不到‘XX.XXXX.XX.類名’的類文件。:

於是退出到 bin目錄下,重新輸入那個指令,得到了同樣的答案!

郁悶怎麼樣才能解決,後來找到答案,首先要保證目錄是 java包的上一級路徑,如果是eclipse編譯的話,那麼就是在bin目錄下了,使用指令

javah -classpath . XX.XXXX.XXX.CLASSNAME

就可以了!!注意中間一個單獨的小數點!然後你就能得到你生成的.h 文件了!!

C++ 設計新思維》 下載見 http://www.linuxidc.com/Linux/2014-07/104850.htm

C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm

讀C++ Primer 之構造函數陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm

讀C++ Primer 之智能指針 http://www.linuxidc.com/Linux/2011-08/40177.htm

讀C++ Primer 之句柄類 http://www.linuxidc.com/Linux/2011-08/40175.htm

將C語言梳理一下,分布在以下10個章節中:

  1. Linux-C成長之路(一):Linux下C編程概要 http://www.linuxidc.com/Linux/2014-05/101242.htm
  2. Linux-C成長之路(二):基本數據類型 http://www.linuxidc.com/Linux/2014-05/101242p2.htm
  3. Linux-C成長之路(三):基本IO函數操作 http://www.linuxidc.com/Linux/2014-05/101242p3.htm
  4. Linux-C成長之路(四):運算符 http://www.linuxidc.com/Linux/2014-05/101242p4.htm
  5. Linux-C成長之路(五):控制流 http://www.linuxidc.com/Linux/2014-05/101242p5.htm
  6. Linux-C成長之路(六):函數要義 http://www.linuxidc.com/Linux/2014-05/101242p6.htm
  7. Linux-C成長之路(七):數組與指針 http://www.linuxidc.com/Linux/2014-05/101242p7.htm
  8. Linux-C成長之路(八):存儲類,動態內存 http://www.linuxidc.com/Linux/2014-05/101242p8.htm
  9. Linux-C成長之路(九):復合數據類型 http://www.linuxidc.com/Linux/2014-05/101242p9.htm
  10. Linux-C成長之路(十):其他高級議題

Copyright © Linux教程網 All Rights Reserved