先javac hello.java
後java hello
㈡ 如何反編譯class文件,簡單快速
1
在網路上搜索關鍵詞「jd-gui」,點擊進入jd-gui的官方網站。
2
(1)點擊「JD-GUI」鏈接
(2)點擊「Download」鏈接
(3)點擊選擇您要下載的版本,如果為windows系統請選擇"xxx.windows.zip",如果為蘋果或linux系統則選擇其他的下載鏈接。
3
(1)下載後進行解壓
(2)雙擊「jd-gui.exe」文件
4
(1)找到您要反編譯的class文件。
(2)用滑鼠拖拽到jd-gui軟體的灰色區域。
5
此時可以看到,class文件被反編譯為了java文件,並且代碼格式很好。
6
在右側可以看到java的包層級,類,方法等等,十分方便。
㈢ JAVA學習時候,用JAD反編譯 class文件時候報錯,求教
文件目錄不能有空格,E:\java和workspace\之間不能有空格.
㈣ 我用jd-gui反編譯class文件,通過javac編譯,提示錯誤: 編碼GBK的不可映射字元
運行控制台,程序->運行,輸入CMD,點擊確定進入DOS操作系統 快捷鍵windows鍵+R鍵
編寫需要運行的java代碼!
/**
*@authorjava
*@version創建時間:2014-11-7下午2:31:53
*類說明
*/
publicclasshelloword{
publicstaticvoidmain(String[]args){
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
System.out.println("hello中文字元,,,中文字元word");
}
}
3. 切換運行目錄到您存放java代碼的目錄!使用命令 cd 切換
4. 常規執行命令javac helloword.java,出現如下錯誤!
5. 解決錯誤提示:編碼 GBK 的不可映射字元,使用命令:javac -encoding utf-8 helloword.java,編譯成功
6. 成功編譯後,在tmp目錄下能看到helloword.java文件編譯後的.class位元組碼文件
7. 使用命令【java helloword】,運行java程序
㈤ 請教高手:java 反編工具 Decafe 有些CLASS文件無法反編
1,也許人家編程的時候設計了反編譯炸彈 就是在代碼中寫些廢代碼使你的反編譯工具死循環或者痴呆。
2,人家用了比較好的混淆器,或者自己做的混淆器,也達到了2的效果。
3,可能和版本有關
這個我沒遇到過 不過據說用jdk高版本編出來的class反編譯有問題
反編譯工具我通常用jad和jode 後者很久沒新版本了 至少2周前我還沒看到有新的
現在很多反編譯工具都用jad作為核心
我目前用的dj java decompiler 不錯 我試過在代碼中放一些邏輯炸彈,用dj也可以反編譯 並且效果還不錯。
不過只要用比較好的混淆器混淆過 沒有什麼反編譯工具能夠完全的破開,還要加不少的手動修改 挺麻煩的
㈥ 我把一個class文件反編譯成java文件後再反編譯回去,提示錯誤!
反編譯後的java文件引用了你現在編譯環境中沒有的包,而這些包是原作者在開發的時候專用配置好的,所以你編譯的時候 某些import就會報錯了
㈦ 怎麼反編譯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沒有參數可以去掉它,用別的辦法吧。
㈧ java問題:為什麼有些class文件反編譯不了
private 的屬性 方法不會被反編譯出來的。
還有就是某些class是作者用自己的編譯器編譯的.你也反編譯不出來
還有就是加密了.
㈨ 我使用CLASS反匯編生成的JAVA文件重新進行編譯生成JAVA文件提示出錯是為什麼呢
並不是所有的class都能反匯編成java文件的,尤其是那些經過obfuscation(代碼混淆)的class文件,混淆器故意生成很難或者根本不可能被反匯編的程序。比如class文件中可以用java關鍵詞作名字的變數,反匯編出來的當然就不行了,這只是混淆技術之一,有些混淆技術相當難破。
另外,反匯編出來的程序質量跟反匯編程序也很有關系,jd-gui不錯,但也不是通吃的。
㈩ 從 CLASS反編譯過來的JAVA文件,再編譯的時候報錯如下: 其他都沒變,只改了URL地址
沒有完全反編譯,凡是提示沒有找到的類你要根據當前報錯的提示即包目錄去把依賴的class都反編譯過來,然後試試肯定可以的