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

                                                                                        南通青鳥(niǎo)教育咨詢(xún)有限公司

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

                                                                                        位置:南通青鳥(niǎo)教育咨詢(xún)有限公司>什么是Java代碼的編譯與反編譯?

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

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

                                                                                        授課機構: 南通青鳥(niǎo)教育咨詢(xún)有限公司

                                                                                        課程價(jià)格: 請咨詢(xún)客服

                                                                                        開(kāi)班時(shí)間:隨到隨學(xué)

                                                                                        上課地址: 請咨詢(xún)客服

                                                                                        優(yōu)惠價(jià)格: 請咨詢(xún)客服

                                                                                        咨詢(xún)電話(huà):

                                                                                        課程介紹

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

                                                                                        青鳥(niǎo)IT教育 Java培訓班解讀什么是Java代碼的編譯,Java代碼反編譯,什么時(shí)候會(huì )用到反編譯?...

                                                                                        Java代碼的編譯與反編譯

                                                                                        2017-02-21 Hollis 數盟

                                                                                        一、什么是編譯

                                                                                        1、利用編譯程序從源語(yǔ)言編寫(xiě)的源程序產(chǎn)生目標程序的過(guò)程。

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

                                                                                        二、什么是反編譯

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

                                                                                        三、 Java類(lèi)的編譯與反編譯

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

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

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

                                                                                        四、什么時(shí)候會(huì )用到反編譯

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

                                                                                        2、學(xué)習Java過(guò)程中,JDK的每個(gè)版本都會(huì )加入越來(lái)越多的語(yǔ)法糖,有些時(shí)候我們想知道Java一些實(shí)現細節,我們可以借助反編譯。

                                                                                        五、反編譯工具

                                                                                        1、javap

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

                                                                                        客戶(hù)端:

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

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

                                                                                        Eclipse插件:

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

                                                                                        更多培訓課程,學(xué)習資訊,課程優(yōu)惠,課程開(kāi)班,學(xué)校地址等學(xué)校信息,請進(jìn)入 南通青鳥(niǎo)教育咨詢(xún)有限公司網(wǎng)站詳細了解
                                                                                        咨詢(xún)電話(huà):

                                                                                        相關(guān)課程


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

                                                                                        微信訪(fǎng)問(wèn)

                                                                                        #tel_020#
                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..