天才教育網(wǎng)合作機構(gòu)>

南通青鳥教育咨詢有限公司

歡迎您!
朋友圈

400-850-8622

全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:南通青鳥教育咨詢有限公司>什么是Java代碼的編譯與反編譯?

什么是Java代碼的編譯與反編譯?

什么是Java代碼的編譯與反編譯?

授課機構(gòu): 南通青鳥教育咨詢有限公司

課程價格: 請咨詢客服

開班時間:隨到隨學(xué)

上課地址: 請咨詢客服

優(yōu)惠價格: 請咨詢客服

咨詢電話:400-850-8622

課程介紹

發(fā)布日期:2017-05-10 09:24

青鳥IT教育 Java培訓(xùn)班解讀什么是Java代碼的編譯,Java代碼反編譯,什么時候會用到反編譯?...

Java代碼的編譯與反編譯

2017-02-21 Hollis 數(shù)盟

一、什么是編譯

1、利用編譯程序從源語言編寫的源程序產(chǎn)生目標(biāo)程序的過程。

2、用編譯程序產(chǎn)生目標(biāo)程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認(rèn)識1和0,編譯程序把人們熟悉的語言換成2進制的。 編譯程序把一個源程序翻譯成目標(biāo)程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標(biāo)代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。

二、什么是反編譯

計算機軟件反向工程(Reverse engineering)也稱為計算機軟件還原工程,是指通過對他人軟件的目標(biāo)程序(可執(zhí)行程序)進行“逆向分析、研究”工作,以推導(dǎo)出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過程、運行方法等設(shè)計要素,某些特定情況下可能推導(dǎo)出源代碼。反編譯作為自己開發(fā)軟件時的參考,或者直接用于自己的軟件產(chǎn)品中。

三、 Java類的編譯與反編譯

我們在最初學(xué)習(xí)Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的文件編譯成文件。

class文件打破了C或者C++等語言所遵循的傳統(tǒng),使用這些傳統(tǒng)語言寫的程序通常首先被編譯,然后被連接成單獨的、專門支持特定硬件平臺和操作系統(tǒng)的二進制文件。通常情況下,一個平臺上的二進制可執(zhí)行文件不能在其他平臺上工作。而Java class文件是可以運行在任何支持Java虛擬機的硬件平臺和操作系統(tǒng)上的二進制文件。

那么反編譯呢,就是通過文件得到j(luò)ava文件(或者說是程序員能看懂的Java文件)

四、什么時候會用到反編譯

1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。

2、學(xué)習(xí)Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現(xiàn)細(xì)節(jié),我們可以借助反編譯。

五、反編譯工具

1、javap

2、Jad:官網(wǎng)(墻裂推薦)

客戶端:

可以在官網(wǎng)下載可執(zhí)行文件,找到對應(yīng)的操作系統(tǒng)的對應(yīng)版本,然后進行安裝使用。

因為我使用的是linux操作系統(tǒng),所以我下載的是Linux版本的工具,這個工具下載好之后會有一個執(zhí)行文件,只要在執(zhí)行文件所在目錄執(zhí)行./jad 就會在當(dāng)前目錄下生成文件,該文件里就是我們很熟悉的Java代碼

Eclipse插件:

下載地址 在官網(wǎng)下載插件的jar包,然后將jar包放到eclipse的plugins目錄下‘ 在打開Eclipse,Eclipse->Window->Preferences->Java,此時你會發(fā)現(xiàn)會比原來多了一個JadClipse的選項,單擊,在Path to decompiler中輸入你剛才放置的位置,也可以制定臨時文件的目錄。當(dāng)然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認(rèn)配置即可。 基本配置完畢后,我們可以查看一下class文件的默認(rèn)打開方式,Eclipse->Window->Preferences->General->Editors->File Associations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的Class File Viewer,而JadClipse是默認(rèn)的。 全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼

更多培訓(xùn)課程,學(xué)習(xí)資訊,課程優(yōu)惠,課程開班,學(xué)校地址等學(xué)校信息,請進入 南通青鳥教育咨詢有限公司網(wǎng)站詳細(xì)了解
咨詢電話:400-850-8622

相關(guān)課程


還沒有找到合適的課程?趕快告訴課程顧問,讓我們顧問馬上聯(lián)系您! 靠譜 的培訓(xùn)課程,省時又省力!

微信訪問

#tel_020#