java編譯后的文件出現(xiàn)xx$1.class的原因及解決方式
java編譯后的文件名字帶有$接數(shù)字的就是匿名內(nèi)部類的編譯結(jié)果,接名字的就是內(nèi)部類的編譯結(jié)果
例如:
TestFrame$1.class是匿名內(nèi)部類的編譯結(jié)果,TestFrame$MyJob.class則是內(nèi)部類MyJob編譯后得到的.
使用內(nèi)部類可以隱藏一些實(shí)現(xiàn)的細(xì)節(jié), 等等, 還有其他一些好處. 使用匿名類的時候, 要注意代碼的可讀性
補(bǔ)充知識:JNI之javah使用時報錯:找不到類文件
初學(xué)java,想使用JNI,在用javah生成頭文件時,總是報錯找不到類;
看了javah的help,本來是很簡單的,但是由于自己概念含糊,所以出錯。
javah的命令行幫助:
用法:javah [選項(xiàng)] <類>其中 [選項(xiàng)] 包括:
-help 輸出此幫助消息并退出
-classpath <路徑> 用于裝入類的路徑
-bootclasspath <路徑> 用于裝入引導(dǎo)類的路徑
-d <目錄> 輸出目錄
-o <文件> 輸出文件(只能使用 -d 或 -o 中的一個)
-jni 生成 JNI樣式的頭文件(默認(rèn))
-version 輸出版本信息
-verbose 啟用詳細(xì)輸出
-force 始終寫入輸出文件使用全限定名稱指定 <類>(例如,java.lang.Object)。
假如有這樣的類:
package mwic32; public class Main { public native String GetICSN( int CommPort); static { System.loadLibrary('MwIc32.dll'); } public static void main(String[] args) { // TODO code application logic here } }
假如項(xiàng)目目錄是:F:/NetBeansProjects,那么編譯后生成的class文件會位于F:/NetBeansProjects/MwIC32/build/classes/mwic32現(xiàn)在希望用JAVAH生成頭文件。
javah -classpath F:/NetBeansProjects/MwIC32/build/classes mwic32.Main
也就是說,指定類的路徑時,應(yīng)該以包所在路徑為準(zhǔn),而不是具體類所在的子目錄
以上這篇java編譯后的文件出現(xiàn)xx$1.class的原因及解決方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. React+umi+typeScript創(chuàng)建項(xiàng)目的過程2. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析3. SharePoint Server 2019新特性介紹4. ASP中常用的22個FSO文件操作函數(shù)整理5. 三個不常見的 HTML5 實(shí)用新特性簡介6. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp7. .Net core 的熱插拔機(jī)制的深入探索及卸載問題求救指南8. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁9. 讀大數(shù)據(jù)量的XML文件的讀取問題10. 解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯誤頁的問題
