安裝Javajdk後看安裝目錄里有沒有jad.exe,沒有要下載,一般都有的配置Java環境變數開始-運行-cmd-回車-進入命令行窗口:cd+空格+class文件所在路徑:按下面的命令進行反編譯:例如:[2]jad-sjavaexample.class回車在目錄里可以看到
② 如何利用反編譯軟體打開並修改class文件
沒辦法完全反編譯所以的class文件為java文件的,因為java中編譯具有不可逆性。
但是可以將每個文件反編譯,之後直接放到相應的包路徑下來進行重新編碼。
第一步:通過附件的「jd-gui」打開jar文件;
第二步:將每個class文件的內容,粘貼到一個新建的java工程中(包路徑必須相同);
第三步:修改需要修改的類,之後如果運行沒問題的話,直接導出為jar包即可。
備註:其實此過程中出錯的幾率還是很大的,如果能夠實現百分百編譯的話,那麼所以的項目也就間接開源了,這肯定是不現實的。
③ 怎樣使用javap來反編譯class文件
當然可以了。在java軟體包的bin文件夾下有一個javap程序,就是用來反編譯的。 用法如java一樣。就是先用javac變成位元組碼文件就是.class文件後,用javap 加上文件名就可以反編譯了。 舉個例子test.class,反編譯用javap test就行了。
④ 怎麼把class文件反編譯成java文件
工具:
DJ java discompiler
方法
打開DJ_java_discompiler,選擇file--open,打開class文件
⑤ Java的反編譯命令是什麼
用jd gui可以直接反編譯class為java代碼。
java中的「反編譯」命令是用來查看class文件的。
在jdk/bin的目錄下有個叫做javap的命令行工具。主要是在分析Class文件的時候比較有用。
⑥ 反編譯工具 java jad怎麼使用方法
下好以後解壓就可以用了,軟體就只有一個exe文件和一個幫助文件,為了方便使用,我直接將exe文件放到JDK的bin目錄里了:)
下面先來看看從網上搜集來的介紹:在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front
End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java
Decompiler、NMI』s Java Class Viewer和國產的JAVA源代碼反編譯專家。
JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD
在JAVA反編譯領域中的尊貴地位。 JAD是使用Microsoft Visual
C++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於
JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下:
-d <dir> - 用於指定輸出文件的目錄
-s <ext> - 輸出文件擴展名(默認為: .jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。
-8 - 將Unicode字元轉換為ANSI字元串,如果輸出字元串是中文的話一定要加上這個參數才能正確顯示。
最常用的反編譯指令如下所示:
Jad -d c:\test -s .java -8 HelloWorld.class
這將當前目錄下的HelloWorld.class反編譯為HelloWorld.java並保存在c:\test目錄里,其中的提示輸出為中文,
而不是Unicode代碼。
附件:對下載後的說明文檔的簡單翻譯,希望對你有所幫助(mathsfan修改於2006.10.29,翻譯的不好請見諒)0、1略去2、怎樣使用JAD
反編譯一個簡單的java class文件'example1.class'用如下命令: jad example1.class
這個命令將在當前目錄下創建一個'example1.jad'文件,假如當前目錄下存在這個文件,則JAD會提示你覆蓋它與否。選項
-o 允許覆蓋時沒有任何提示。選項 -s <ext>允許改變輸出文件的後綴名: jad -sjava example1.class
這個命令將要創建'example1.java'文件。在一起使用-o 和
-sjava選項時請小心,因為JAD會附帶的重寫你的源文件。JAD使用JAVA
class的名字作為輸出文件的名字。例如,假如class文件'example1.class'包含JAVA class
'test1'那麼JAD將會創建文件'test1.jad'而不是'example1.jad'。假如你想具體指明你的輸出文件的名字使用輸出重命名:
jad -p example1.class > myexm1.java
選項 –d允許你具體指明另外的輸出文件目錄,不管這個目錄是新建的、默認的或者當前目錄。例如:
jad -o -dtest -sjava *.class
(或者 jad -o -d test -s java *.class, 這個有同樣的效果)
這個命令將在當前目錄下反編譯所有的.class文件並在'test'文件夾下建立所有擴展名為.java的輸出文件。
假如你想反編譯整個目錄樹下的JAVA classes,使用如下命令:
jad -o -r -sjava -dsrc tree/**/*.class
這個命令將反編譯當前目錄樹里所有的.class文件並且在當前目錄下建立src文件夾後根據包的名字來輸出文件。例如,假如有一個文件
'tree/a/b/c.class'在包'a.b'下包含了class 'c',那麼輸出文件的名字為'src/a/b/c.java'。
在先前的命令上將通配符那裡注釋掉。則它是用JAD來處理而不是command殼,所以在UNIX上的最後一次參數將會被單獨引用。
jad -o -r -sjava -dsrc 'tree/**/*.class'
你想檢查編譯後的文件的正確性或者出於好奇的情況下,這里有一個選項 –a 將會告訴JAD給輸出的JAVA虛擬位元組碼註解。
⑦ 北大青鳥java培訓:java中的編譯與反編譯
一、什麼是編譯1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。
2、用編譯程序產生目標程序的動作。
編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。
編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。
主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
二、什麼是反編譯計算機軟體反向工程(Reverseengineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。
反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
三、Java類的編譯與反編譯我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
class文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。
通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。
而Javaclass文件是可以運行在任何支持Java虛擬機的硬體平台和操作系統上的二進制文件。
那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)四、什麼時候會用到反編譯1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那麼天津java培訓http://www.kmbdqn.cn/認為可以把它反編譯成我們可以看得懂的文件。
2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以藉助反編譯。
⑧ 如何將java中的.class文件反編譯
安裝Java jdk後
看安裝目錄里有沒有jad.exe,沒有要下載,一般都有的
配置Java環境變數
開始-運行-cmd-回車-進入命令行窗口:
cd+空格+class文件所在路徑:
按下面的命令進行反編譯:
例如:[2] jad -sjava example.class 回車
在目錄里可以看到example.java源文件
[1] 反編譯一個class文件:jad example.class,會生成example.jad,用文本編輯器打開就是java源代碼
[2] 指定生成源代碼的後綴名:jad -sjava example.class,生成example.java
[3] 改變生成的源代碼的名稱,可以先使用-p將反編譯後的源代碼輸出到控制台窗口,然後使用重定向,輸出到文件:jad -p example.class > myexample.java
[4] 把源代碼文件輸出到指定的目錄:jad -dnewdir -sjava example.class,在newdir目錄下生成example.java
[5] 把packages目錄下的class文件全部反編譯:jad -sjava packages/*.class
[6] 把packages目錄以及子目錄下的文件全部反編譯:jad -sjava packages/**/*.class,不過你仍然會發現所有的源代碼文件被放到了同一個文件中,沒有按照class文件的包路徑建立起路徑
[7] 把packages目錄以及子目錄下的文件全部反編譯並建立和java包一致的文件夾路徑,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 當重復使用命令反編譯時,Jad會提示「whether you want to overwrite it or not」,使用-o可以強制覆蓋舊文件
[9] 還有其他的參數可以設置生成的源代碼的格式,可以輸入jad命令查看幫助,這里有個人做了簡單的翻譯:jad命令總結
[10] 當然,你會發現有些源文件頭部有些注釋信息,不用找了,jad沒有參數可以去掉它,用別的辦法吧。
⑨ 怎麼把.class文件反編譯成.java 經修改後再編譯成.class
網友分享的:
一、反編譯:下載一個jad
反編譯工具jad簡單用法
以下假設jad.exe在c:/java目錄下
一、基本用法
Usage:jad[option(s)]
直接輸入類文件名,且支持通配符,如下所示。
c:/java/>jadexample1.class
c:/java/>jad*.class
結果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源
文件。
二、Option-o
不提示,覆蓋源文件
三、Option-s
c:/java/>jad-sjavaexample1.class
反編譯結果以.java為擴展名。
四、Option-p
將反編譯結果輸出到屏幕
c:/java/>jad-pexample1.class
將反編譯結果重定向到文件
c:/java/>jad-pexample1.class>example1.java
五、Option-d
指定反編譯的輸出文件目錄
c:/java/>jad-o-dtest-sjava*.class
二:修改、再編譯
用Eclipse新建工程,再將反編譯出的Java文件按原樣導入工程,就可以修改代碼。修改並調試後,點擊Eclipse菜單中的文件→導出→Java→可運行的JAR文件,選擇配置工程和導出路徑,然後點完成即可導出。
⑩ 怎麼把class文件反編譯成java文件
Java中使用eclipse提供的插件對class進行反編譯成java文件,如下步驟:
1、安裝jadclipse插件
使用jadclipse插件一定要注意Eclipse版本。jadclipse_3.2.4,它對應的是Eclipse3.2版,jadclipse_3.3.0可以用於Eclipse3.3M6以上版。大家千萬不要把jadclipse_3.3.0放到Eclipse3.2中,也不要把jadclipse_3.2.4放到Eclipse3.3中,將jadclipse插件(版本自己選擇)直接到Eclipse目錄中的plugins文件夾下,然後打開Eclipse,選擇"窗口"-"首選項"-"常規"-"編輯器"-"文件關聯",點擊文件關聯中的*.class,下面就會看到"JadClipse Class File Viewer",選中它,點擊預設值,點擊OK,將它設置為默認的類查看器。如圖: