如何使用Javah 產生C/C++標頭檔的誤區 找不到 ‘XX.XXXX.XX.CLASSNAME’ 的類檔案,gcc找不到標頭檔

來源:互聯網
上載者:User

如何使用Javah 產生C/C++標頭檔的誤區 找不到 ‘XX.XXXX.XX.CLASSNAME’ 的類檔案,gcc找不到標頭檔

        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 檔案了!!


        




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.