成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java代碼的編譯與反編譯

開發 開發工具
學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以借助反編譯。

[[183677]]

一、什么是編譯

1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。

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

二、什么是反編譯

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

三、 Java類的編譯與反編譯

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

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

那么反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)

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

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

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

五、反編譯工具

1、javap

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

客戶端:

可以在官網下載可執行文件,找到對應的操作系統的對應版本,然后進行安裝使用。

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

Eclipse插件:

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

【本文是51CTO專欄作者Hollis的原創文章,作者微信公眾號Hollis(ID:hollischuang)】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO.com
相關推薦

2009-06-11 14:11:33

代碼混淆Java反編譯

2021-03-07 16:31:35

Java編譯反編譯

2015-01-15 11:01:43

2011-04-20 10:32:44

java反編譯

2021-05-18 10:18:15

Java

2009-06-11 13:49:30

2011-05-31 14:52:13

Android 反編譯 方法

2011-05-31 14:18:17

2012-11-06 10:02:04

JavaJadEclipse

2011-05-31 14:38:04

Android 反編譯

2014-09-25 10:28:02

反編譯工具Java

2015-01-15 10:15:16

Android反編譯-smail語法

2017-11-27 15:43:49

Androidjadx反編譯

2020-03-17 16:15:01

Python編譯代碼

2009-02-26 16:28:43

靜態編譯動態編譯Java

2015-07-13 15:52:18

反編譯Android APK

2024-09-09 00:00:07

2021-12-10 10:05:27

Java反編譯jar

2025-04-02 07:42:49

2024-09-13 08:57:25

SpringJar項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄视频在线网站 | 久久精品国产久精国产 | 伊人伊成久久人综合网站 | 国产乱码精品一区二区三区忘忧草 | 午夜合集 | 久久精品国产99国产精品亚洲 | 中文字幕高清免费日韩视频在线 | 玖玖精品 | 黄色免费网 | 91啪亚洲精品 | 黄色在线免费播放 | 亚洲综合色丁香婷婷六月图片 | 国产精品久久亚洲7777 | 成年人精品视频 | 成人av网站在线观看 | 久久久爽爽爽美女图片 | 中文字幕1区 | 色噜噜亚洲男人的天堂 | 国产四区 | 免费国产视频 | 最近中文字幕第一页 | 91欧美 | 国产精品视频入口 | 亚洲精品乱码久久久久v最新版 | 国产精品久久国产精品99 gif | 日韩精品一区二区在线 | 亚洲精品一区二区三区中文字幕 | 亚洲一二三在线 | 亚洲国产精品一区二区三区 | 狠狠的干 | 国产在视频一区二区三区吞精 | 精品国产一二三区 | 天色综合网 | 亚洲国产在 | 久久久久欧美 | 国内精品一区二区三区 | 久久久久久久国产精品 | 国产精品永久免费 | 亚洲综合视频 | 精品九九| 美女高潮网站 |