當前位置:首頁 » 編程軟體 » java反編譯工具有哪些

java反編譯工具有哪些

發布時間: 2023-02-14 12:07:26

❶ JAD中文是什麼

JAD(應用程序開發聯系會議) 召開應用程序開發聯系會議 應用程序開發聯系( J A D)會議是范圍廣的、簡便的專題討論會( w o r k s h o p),也是分析人員與客戶代表之間一種很好的合作辦法,並能由此擬出需求文檔的底稿。 出自《軟體需求》第三章-》需求獲取 java 應用程序描述符 (JAD) JAD 文件包含 MIDlet 套件的標題信息,例如開發應用程序的公司、應用程序名稱和大小。在將應用程序下載到設備上時,將先下載和讀取描述符,然後再下載和讀取包含 MIDP 應用程序的 JAR 文件。在裝入 MIDlet 套件的完整 JAR 文件之前,移動設備上的應用程序管理軟體可使用 JAD 文件驗證 MIDlet 是否適用於該設備。JAD 還向 MIDlet 提供特定於配置的屬性(參數),而無需修改 JAR 文件。這樣設備便可以確認是否具有足夠的空間用於存放應用程序,以及是否應下載完整的應用程序。 Java 文件的擴展名為 .jad。 JAD是軟體配置信息文件,JAR才是真正的程序,你可以把兩個文件放在一起安裝JAD,也可以直接安裝JAR文件。 JAD 文件為純文本格式,可用記事本打開。一個 JAD 文件至少需要包含包含如下屬性: MIDlet-Name。向用戶標識 MIDlet 的 MIDlet 套件名稱。 MIDlet-Version。MIDlet 套件的版本號。應用程序管理軟體使用該版本號執行安裝操作和升級,以及與用戶進行通信。 MIDlet-Vendor。 提供 MIDlet 套件的組織。 根據項目配置所支持的 MIDP 版本,還可以使用其他屬性: MIDlet-JAR-URL。此 MIDlet 套件的 JAR 文件的位置和名稱。 MIDlet-JAR-Size。通過此 MIDlet 套件生成的 JAR 文件的大小。每次生成 JAR 文件後,都會更新此只讀屬性。 MicroEdition-Profile。所需的 Java ME 配置文件,它使用與系統屬性 microedition.profiles 相同的格式和值(例如 MIDP-1.0)。 MicroEdition-Configuration。 所需的 Java ME 配置,它使用與系統屬性 microedition.configuration 相同的格式和值(例如 CLDC-1.0)。 MIDlet-Description。MIDlet 套件的描述。 MIDlet-Icon。JAR 文件內的 PNG 文件名,用於表示 MIDlet 套件。應用程序管理軟體顯示了標識此套件的圖標。 MIDlet-Info-URL。一個 URL,提供進一步描述 MIDlet 套件的信息。 MIDlet-Data-Size。MIDlet 所需的持久性數據的最少位元組數。設備可以根據其自身的策略提供額外的存儲。 此外,JAD還是一個簡單易用的反編譯工具,可以將二進制位元組碼文件轉換成java源文件。 在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI』s Java Class Viewer和國產的JAVA源代碼反編譯專家等等。 JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。

❷ java反編譯工具哪個好用

jd-gui、DJ Java Dcompiler、Xjad
其中前2個我用過,jd-gui 算是輕量級,但有時候反編譯的效果不如 DJ,有些文件可能還原的不完整;DJ的缺點是只能一個文件一個文件的打開,而且體驗上比jd-gui稍差。

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

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

  1. 下載jd-gui

  2. 雙擊打開jd-gui.exe

  3. 單擊左上角的File--->Open File

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

❹ Java反編譯工具有什麼作用

就是把經過java文件編譯後的可執行的class文件再反編譯為java文件,因為經過編譯的class文件是不可閱讀的!但是由於java文件一般都不是單獨運行的,會有類之間的相互調用,所以反編譯工具反編譯後只能大體上還原原來java文件,而不能完全還原,特別是一些變數的取值,定義等..

❺ 求java開發反編譯破解工具(DJ Java Decompiler)V3.12.12.99網盤資源

鏈接:

提取碼:6xkq

軟體名稱:java開發反編譯破解工具(DJJavaDecompiler)V3.12.12.99

語言:英文軟體

大小:7.81MB

類別:系統工具

介紹:這是一款實用的java開發反編譯破解工具,運行DJ.exe直接用,是破解的,已經綠化破解DJJavaDecompiler。

❻ 求各種好用的反編譯工具!!

如PB的,最常用的是 PB反編譯專家 SHUDEPB
.net,一般是Reflector
dephi,一般是dede
JAVA,比較出名的有小穎的反編譯專家

XJad(Java源代碼反編譯工具) V2.2

XJad是基於Jad核心的Java源程序反編譯軟體,內置Jad1.5.8e2。
XJad可處理多個*.class文件,可以處理文件夾內的所有文件,甚至可以處理*.jar文件。
XJad帶有多頁面文本編輯器,反編譯完成後可以直接編輯查看,編輯器支持java語法的高亮顯示功能。
XJad是一個純綠色軟體,為使用方便,可以在選項中設置集成到資源管理器中,這樣在*.class、*.java、*.jar文件和目錄上隨時點擊右鍵都可直接進行操作。
XJad還帶有導出當前編輯器中的代碼為HTML文件的功能,HTML文件保持代碼高亮顯示的樣式風格。
使用說明
===========
1、反編譯class文件:打開一個或者多個*.class文件,XJad反編譯後,重命名為*.java文件,保存至當前文件夾,並在編輯器中打開查看;
2、反編譯文件夾:在軟體中選擇反編譯文件夾或右鍵點擊文件夾選擇反編譯,XJad將該文件夾下所有*.class文件進行反編譯,並保存至該文件夾下,依據包路徑信息生成文件夾路徑,如com.spring.framework.*,將建立com\\spring\\framework的文件夾結構;
3、反編譯jar文件:打開一個*.jar文件,XJad將該Jar文件中的所有*.class文件解壓縮到臨時目錄並進行反編譯,並將源文件帶包路徑信息保存至當前文件夾下名稱為「~」 + *.jar 的文件夾中;

flash反編譯工具 閃客精靈

❼ 反編譯工具 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虛擬位元組碼註解。

❽ 將.class文件反編譯成.java文件都有哪些工具

反編譯工具jad簡單用法
以下假設jad.exe在c:\java目錄下

一、基本用法
Usage:jad [option(s)]
直接輸入類文件名,且支持通配符,如下所示。
c:\java\>jad example1.class
c:\java\>jad *.class
結果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源文件。

二、Option -o
不提示,覆蓋源文件

三、Option -s
c:\java\>jad -sjava example1.class
反編譯結果以.java為擴展名。

四、Option -p
將反編譯結果輸出到屏幕
c:\java\>jad -p example1.class
將反編譯結果重定向到文件
c:\java\>jad -p example1.class>example1.java

五、Option -d
指定反編譯的輸出文件目錄
c:\java\>jad -o -dtest -sjava *.class

❾ java語法基礎,具體內容

Java基礎——Java開發前奏

Java的特點

Java最主要的特點是:一次編譯,到處運行(WriteOnce,RunAnywhere.)。

原理:Java源程序經編譯後生成.class位元組碼文件,.class文件由Java虛擬機(JVM)解釋執行。不同的操作系統下,只要有相應的Java位元組碼解釋程序,.class文件就能夠運行,這是Java跨平台性的根本。c和java編程與執行的過程如下圖所示:

Java的內涵

1、是一種編程語言

2、是一套開發工具

3、是一個運行環境

Java應用平台

1、J2EE()——用於企業級應用程序的開發

2、J2SE(Java2PlatformStandardEdition)——用於普通標准應用程序的開發

3、J2ME(Java2PlatformMicroEdition)——用於小型消費類電子產品或嵌入式系統的開發

J2SE包括4部分——JVM、JRE、JDK與Java語言。

環境變數的設置

環境變數——在操作系統中定義的變數,可供操作系統上所有的應用程序使用。

1、查看環境變數

a.命令提示行:環境變數的命令——set(環境變數名)

b.窗口方式:我的電腦->屬性->高級->環境變數

2、設置path環境變數

path環境變數的作用:設置操作系統尋找和執行應用程序的路徑。

JAVA_HOME:C:ProgramFilesJavajdk1.6.0_14

path:%JAVA_HOME%in;%JAVA_HOME%jrein

3、設置classpath環境變數

classpath環境變數的作用:讓Java執行環境找到指定的java程序(.class文件)。

classpath:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar

注意:a.%JAVA_HOME%前面有「.;」,「.」表示當前目錄,兩個路徑之間用「;」隔開。

b.設置classpath的路徑中不能有空格,也不能有中文字元。

JVM的運行過程

Java反編譯工具——JAD、FrontEnd

Java開發工具

1、記事本

注意保存時文件名應為*.java。

2、UltraEdit、EditPlus

使用EditPlus編輯和編譯Java程序,需要進行相應配置。選擇「工具」->「參數選擇」->「工具」->「用戶工具」->「添加工具」->「應用程序」。首先設置「javac」的參數,具體如下圖,其中「命令」為javac.exe文件的地址。

然後設置「java」的參數,如下圖所示,其中「命令」為java.exe文件的路徑。

設置好後默認「javac」工具的快捷鍵為Ctrl+1,「java」工具的快捷鍵為Ctrl+2。當編輯好Java源程序後,使用Ctrl+1即可對其進行編譯,然後按Ctrl+2運行程序。如下圖所示:

3、集成開發環境——Eclipse、MyEclipse、JBuilder等。

關於Eclipse和MyEclipse,剛用的時候感覺二者差不多,查了資料才知道Eclipse是基礎,如同操作系統;而MyEclipse是在Eclipse上面運行的程序,不過進行了增強並提供了新功能。

以前用過Microsoft的VisualStudio2005,個人感覺VS2005是一個功能非常強大的集成開發環境,不過.NET和Java畢竟不是一家人,學Java還是要用Eclipse的。

JDK中的常用包

1、java.lang——包含一些Java語言的核心類,如String、Math、Thread、System、Integer類等。

2、java.awt——包含構成抽象窗口工具集的多個類,用來構建和管理應用程序的圖形用戶界面(GUI)。

3、java.applet——包含applet運行所需的一些類。

4、java.net——包含執行與網路相關操作的類。

5、java.io——包含能提供多種輸入/輸出功能的類。

6、java.util——包含一些實用工具類。

Java的命名習慣

1、包名中的字母一律小寫。如:xxxyyyzzz。

2、類名、介面名應使用名詞,每個單詞的首字母大寫。如:XxxYyyZzz。

3、方法名,第一個單詞小寫,後面每個單詞的首字母大寫。如:xxxYyyZzz。

4、變數名,第一個單詞小寫,後面每個單詞的首字母大寫。

5、常量名中的每個字母一律大寫。如:XXXYYYZZZ。

Java基礎——Java語法基礎(1)

Java代碼基本格式

Java中所有程序代碼都必須存在於一個類中,用class關鍵字定義類,在class之前可以有一些修飾符。格式如下:

修飾符class類名

{

程序代碼

}

註:

1、Java是嚴格區分大小寫的。

2、Java程序中一句連續的字元串不能分開在兩行中寫。

Java程序的注釋

Java里的注釋有三種類型:

1、單行注釋

在注釋內容前面加「//」,格式為:

代碼;//注釋內容

2、多行注釋

以斜杠加星號開頭,以星號加斜杠結尾。

3、文檔注釋

以斜杠加兩個星號開頭,以一個星號加斜杠結束。

用這種方法注釋的內容會被解釋成程序的正式文檔,並能包含進諸如javadoc之類的工具程序生成的文檔里,用以說明該程序的層次結構及其方法。

補充:

1、多行注釋中可以嵌套「//」注釋,但不能嵌套多行注釋符號。

2、程序注釋一般占程序代碼總量的20%-50%,「可讀性第一,效率第二」。

Java中的標識符

Java中的包、類、方法、參數、變數的名字,可以由任意順序的大小寫字母、數字、下劃線(_)、美元符號($)組成,但不能以數字開頭,不能是Java中的保留關鍵字。

Java的關鍵字

1、用於類和介面的聲明:class,extends,implements,interface

2、包引入和包聲明:import,package

3、數據類型:byte,boolean,char,double,int,long,float,short

4、某些數據類型的可選值:flase,ture,null

5、流程式控制制:break,case,continue,default,do,else,for,if,return,switch,while

6、異常處理:catch,finally,throw,throws,try

7、修飾符:abstract,final,native,private,protected,public,static,synchronilzed,transient,volatitle

8、操作符:instanceof

9、創建對象:new

10、引用:this,supper

11、方法返回類型:void

12、保留字:const,goto

Java中的常量

1、整形常量

十進制

十六進制——以0x或0X開頭

八進制——以0開頭

長整形——以L(l)結尾

2、浮點數常量

單精度浮點數——後面加f(F)

雙精度浮點數——後面加d(D)

註:

a.小數常量的默認類型是double型,所以float類型常量後一定要加f(F)。

b.浮點數常量可以用指數形式表示,如5.022e+23f

3、布爾常量

true或false

4、字元常量

由英文字母、數字、轉義序列、特殊字元等的字元所表示,如'a'、' '等。

Java中的字元占兩個位元組,是用Unicode碼表示的,也可以使用'u'加Unicode碼值來表示對應字元,如'u0027'。

常用的轉義字元有:

——表示接受鍵盤輸入,相當於按了一下回車鍵

——表示換行

——表示製表符,相當於Tab鍵

——表示退格鍵,相當於BackSpace鍵

'——表示單引號

」——表示雙引號

\——表示反斜杠「」

5、字元串常量

字元串常量用雙引號括起來。

6、null常量

null常量表示對象的引用為空。

Java的變數類型

基本數據類型之間的轉換

1、自動類型轉換(隱式類型轉換)

條件:

a.兩種類型彼此兼容

b.目標類型的取值范圍要大於源類型

2、強制類型轉換(顯示類型轉換)

格式:目標類型常量=(目標類型)值

註:字元串可以使用加號「+」同其他的數據類型相連而形成一個新的字元串。

變數的作用域

代碼塊決定了變數的作用域,作用域決定了變數的可見性和存在時間。

局部變數

在一個函數或函數裡面的代碼塊中定義的變數稱為局部變數。

局部變數在進行取值操作前必須被初始化或進行過賦值操作。

函數

1、定義函數的格式

返回值類型函數名(參數類型形式參數1,參數類型形式參數2,...)

{

程序代碼

return返回值;

}

2、函數的重載

函數的重載就是在一個類中可以同時存在一個以上的同名函數,只要它們的參數個數或類型不同即可。

Java基礎——Java語法基礎(2)——運算符

Java中的運算符

1、算術運算符

a.字元串+其他類型=字元串

b.如果對負數求余,可以把除數負號忽略不計,如5%-1=1。但如果被除數是負數就另當別論了。

2、賦值運算符

a.在Java中,可以把賦值語句連在一起,如:x=y=z=5;

b.x+=y相當於x=x+y

3、比較運算符

a.要注意比較運算符「==」和賦值運算符「=」的區別,特別是布爾型變數進行比較時。

b.可以將比較運算的表達式寫為「false==變數」的形式,以防止誤寫為賦值運算。

4、邏輯運算符

a.邏輯運算符用於對boolean型結果的表達式進行運算,運算的結果都是boolean型。

b.「&」和「&&」的區別在於,如果使用前者連接,那麼無論任何情況,「&」兩邊的表達式都會參與計算。如果使用後者連接,當「&&」的左邊為false,則將不會計算其右邊的表達式。「|」和「||」的區別與「&」和「&&」的區別一樣。

5、位運算符

位運算——對數據按二進制位進行移位操作。

適用類型:byte,short,char,int,long

位運算包括:

&位與

|位或

^位異或

<<左移,左移n位相當於乘以2的n次方

>>右移,右移n位相當於除以2的n次方

>>>無符號右移

註:

a.位運算符也可以與「=」賦值運算符組合產生新的賦值運算符,如:&=,<<=等。

b.移位不會改變變數本身的值,如a>>1在一行語句中單獨存在毫無意義。

c.對低於int型的操作數將先自動轉換為int型再移位;對int型整數移位a>>b,系統先將b對32取模,得到的結果才是真正移位的位數;對於long型整數移位時則是先將移位位數對64取模。

運算符的優先順序

編程技巧:

1、不要在一行中編寫太復雜的表達式,可以將其分解為幾條語句。

2、多用括弧。

Java基礎——Java語法基礎(3)

程序控制流程

1、順序結構

按順序執行

2、if條件語句

a.if...

b.if...else...

可簡寫為:變數=布爾表達式?語句1:語句2;

c.if...elseif...else...

3、switch選擇語句

switch(表達式)

{

case取值1:

語句塊1;

break;

...

case取值n:

語句塊n;

break;

default:

語句塊n+1;

break;

}

4、while循環語句

while(條件表達式)

{

執行語句

}

5、dowhile循環語句

do

{

執行語句

}while(條件表達式)

6、for循環語句

for(初始化表達式;循環條件表達式;循環後操作表達式)

{

執行語句

}

7、增強for循環

for(循環變數類型循環變數名稱:要被遍歷的對象)

{

執行語句

}

8、break與continue語句

a.一個無標號的break語句會把控制傳回當前最內層循環(while,do,for,switch)的下一條語句。

b.無標號的continue語句的作用是跳過當前循環的剩餘語句塊,接著執行下一次循環。

數組

1、數組的定義

如:int[]x=newint[100];

或intx[]=newint[100];

2、數組的靜態初始化

如:int[]aa=newint[]{3,4,5};

3、多維數據

如:

int[][]xx=newint[3][];

xx[0]=newint[3];

xx[1]=newint[2];

4、一些與數組相關的函數

a.System.array(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)復制數組,將源數組srcPos開始的length個元素從目標數組的destPos位置開始存儲。

b.Array.sort()數組升序排序

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:748
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1012
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:718
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:878
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1127
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:351
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:229
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:875