當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程軟體 » jdk反編譯

jdk反編譯-九游会j9娱乐平台

發布時間: 2022-01-08 00:06:23

1. java編譯class jdk1.5以上工具

推薦用 小穎反編譯工具 我用了好幾年了 我本機有 要的話我發郵件給你

2. 求助java反編譯軟體關於jdk1.5

執行一下看看,這是jdk1.5的輸出:

java.lang.exceptionininitializererror
causedby:java.lang.arithmeticexception:/byzero
atdebug.mytest.(test.java:3)
exceptioninthread"main"

請注意,和其它方法調用時產生的異常一樣,異常被定位於debug.mytest的.

再來看:

packagedebug;
publicclasstest{
test(){
inti=100/0;
}
publicstaticvoidmain(string[]args){
newtest();
}
}

jdk1.5輸入:
exceptioninthread"main"java.lang.arithmeticexception:/byzero
atdebug.test.(test.java:4)
atdebug.test.main(test.java:7)

3. java反編譯

如今java語言在全世界范圍正如火如荼般的流行,它廣范地應用在internet的資料庫、多媒體、cgi、及動態網頁的製作方面。1999年在美國對java程序員的需求量首次超過c !

作者因最近分析一些java程序,對java的反編譯進行了一番了解,下面將我所了解的情況作以下介紹,希望對java愛好者有所幫助。

java是採用一種稱做「位元組編碼」的程序結構,分為小程序(嵌入到html文件中)和應用程序(直接在命令狀態下執行)兩種類型。無論哪種結構,一旦用javac 命令編譯後,均變成後綴為class的同名可執行文件。這種文件是不可閱讀的代碼。

經查閱了sun公司的jdk(jdk1.1.3)文檔資料後,我找到了一個據稱是可反編譯java的javap文件(exe),這個文件位於\jdk\bin\ 下面,經按說明使用後,感到失望,原來這個「反編譯」僅可反編譯出java程序的數據區(定義)、若干方法和類的引用等。

這里我用了一個簡單例子來說明問題。

java的源程序hello_java.java如下:

import java.applet.*;
import java.awt.*;
public class hello_java extends applet
{
public void paint(graphics g)
{
g.drawstring("hello java!\n",20,20);
}
}

經用反編譯命令:javap -c -package -public -private hello_java hello.java

得到的反編譯結果(hello.java)如下:(有關javap命令的選擇參數請見其使用說明,這里-c表示選擇了反編譯)

compiled from hello_java.java
public synchronized class hello_java extends java.applet.applet
/* acc_super bit set */
{
public void paint(java.awt.graphics);
public hello_java();
method void paint(java.awt.graphics)
0 aload_1
1 ldc #1
3 bipush 20
5 bipush 20
7 invokevirtual #6
10 return
method hello_java()
0 aload_0
1 invokespecial #5 ()v>
4 return
}

4. 最好的java反編譯工具是哪個

jd-gui 是java反編譯中比較好用的一個工具,用法如下:

  1. 下載jd-gui

  2. 雙擊打開jd-gui.exe

  3. 單擊左上角的file--->open file

  4. 找到需要反編譯的.class文件 打開即可

5. 如何查看class文件編譯的jdk版本

查看class文件編譯的jdk版本步驟如下:

  1. 首先打開cmd命令行窗口,輸入如下指令:


6. 誰會用java反編譯軟體

我以前是用jad的,你下一個,很簡單,安裝後,把*.class文件考到它的目錄下,在cmd命令行運行jad -s java *.class就可以得到.java文件了.
下載:http://www.66169.com/66664lo/bckf/java/jadnt157.zip
或者還有個圖形操作的界面工具frontend,很不錯的java 反編譯軟體
下載:
http://www.javaresearch.org/members/104876/frontend.exe
比java自帶的好啊
兄弟給分嗎,我回答這么累了..

7. java語言中已經有了.class文件,能反編譯為java文件嗎如何查看源文件

沒有直接反編譯出java文件的反編譯器'但是一般反編譯器都可以查看大體原代碼

8. 求教jdk中的反編譯命令

用習慣了著名的反編譯工具jad的話,如果有的時候單給出class文件,要快速看這個class文件

的jdk版本號等,其實不用工具,也可以用jdk自帶的javap命令進行反編譯輸出,下面小結

其用法:


1,javap -verbose 類名

得到的信息如下:


compiled from "test.java"

public class test extends java.lang.object

sourcefile: "test.java"

minor version: 0

major version: 50

constant pool:

......


可以看出jdk的版本,這個用在判斷某些class的版本是否兼容的時候很有用.


2 最常見的不帶參數的情況:javap 類名


比如某個類:

java代碼

packagetest;

publicclasstest{

intnumber=5;

publicvoidsayhello(){
system.out.println("hello");
}
}


則:

c: empjavaptest>javap test

compiled from "test.java"

public class test.test extends java.lang.object{

int number;

public test.test();

public void sayhello();

}


帶參數-c:

則可以看到位元組碼了:


java代碼

c:	empjavaptest>javap-ctest
compiledfrom"test.java"
publicclasstest.testextendsjava.lang.object{
intnumber;

publictest.test();
code:
0:aload_0
1:invokespecial#1;//methodjava/lang/object."":()v
4:aload_0
5:iconst_5
6:putfield#2;//fieldnumber:i
9:return

publicvoidsayhello();
code:
0:getstatic#3;//fieldjava/lang/system.out:ljava/io/printstream;
3:ldc#4;//stringhello
5:invokevirtual#5;//methodjava/io/printstream.println:(ljava/lang/string;)v
8:return

}


帶參數-l: 將顯示行號和局部變數表


-public 只顯示 public 類及成員。

-protected 只顯示 protected 和 public 類及成員。

-package 只顯示包、protected 和 public 類及成員。這是預設設置。

-private 顯示所有類和成員。

9. 如何將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沒有參數可以去掉它,用別的辦法吧。

10. 反編譯apk時是不是jre和jdk都要安裝

安裝jdk的同時會默認安裝jre的。其實默認安裝即可的,重點是配置環境變數。
如:jdk安裝在「c:\program files\java\jdk1.6.0_10」
第一步:新建「java_home」值,輸入「c:\program files\java\jdk1.6.0_10」;
第二步:新建「classpath」值,輸入「.;%java_home%\lib」;
第三步:在path中增加「%java_home%\bin」;
備註:配置環境變數在「計算機」右擊「屬性」,之後選擇「高級環境變數」,在選擇「環境變數」即可。

熱點內容
布丁少兒編程 發布:2024-11-19 09:57:11 瀏覽:97
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
网站地图