當前位置:首頁 » 編程語言 » class轉java

class轉java

發布時間: 2022-05-25 04:50:00

❶ 能從class文件生成java嗎什麼生成

java是運行在java虛擬機上的,你寫的.java代碼虛擬機是不能直接執行的,虛擬機要先把java文件編譯成class位元組碼文件,虛擬才可以直接執行class文件。

exe是windows的可執行文件的格式,可以把java轉換成exe,有個軟體教exe4j,是把java轉換成exe的,去網路搜索這個軟體,有教程自己看吧。

我個人覺得,java生成exe費力不討好。呵呵。

個人建議,用eclipse生成可執行jar文件,雙擊jar就可以運行java程序了,除非你用java做個很成功的軟體,那樣就直接用install什麼的哪個軟體打成安裝包了。小程序的話,可執行jar足夠了

❷ 如何將jar包中的.class轉換成java文件

沒法轉。只能用IDE(eclipse或idea等)工具打開,然後全選.class文件的源碼,復制到新建的Java文件中

❸ java里的servlet中的class文件怎麼轉換成java文件或者說怎麼編輯class文件

搜一下:java里的servlet中的class文件怎麼轉換成java文件或者說怎麼編輯class文件

❹ 如何將.class轉化為.java文件

無論是修改許多網上源碼庫中的代碼,還是調用常見的操作系統例行程序,您免不了要花一些時間去琢磨您沒有編寫過的代碼,而且您還可能沒有這些代碼的源文件。在開始調試代碼時,您需要有一個好的 Java 反編譯器,並了解正確使用它的技術。同時,您還要知道如何保護您自己的代碼不被窺視。為此,您還需了解有關代碼模糊處理的問題。在這篇有關打開和封鎖 Java 代碼的初學者指南中, Greg Travis 使用 Mocha、HoseMocha、jmangle 和 JODE 等流行工具中的範例,來循序漸進地教你有關反匯編、反編譯和 Java 代碼模糊處理的基礎知識。
沒有比發現一個錯誤,卻沒有源代碼就不能修改更令人沮喪的了。正是這個原因導致了 Java 反編譯器的出現,它可以把編譯後的位元組碼完全轉回成源代碼。盡管代碼反編譯器不只是針對 Java 語言,但它從來沒有象在 Java 開發人員中那樣被公開地或廣泛地使用。

與反編譯針鋒相對的是模糊處理。假設反編譯人員能很容易從編譯後的代碼中設法得到源代碼,那麼要保護您的代碼和有價值的技術秘密就不是那麼簡單了。隨著 Java 反編譯器的普遍使用, Java 模糊處理器也同樣被普及,它的作用就好像放一塊煙幕在您的代碼前面。反編譯和模糊處理在商業開發領域中引起了一場爭論 -- 爭論中的大部分都集中在了 Java 語言上。

在本文中,我將讓您了解代碼反編譯和模糊處理的具體過程,討論在這兩種技術之後的理論問題,同時簡要地談到它們在商業編程領域中所引起的爭論。我還將介紹一些比較有名的反編譯器和模糊處理器(有商業的,也有開放源代碼的),並隨著文章的深入使用它們來創建一些實例。

什麼是反編譯?

反編譯是一個將目標代碼轉換成源代碼的過程。這應該很清楚了,因為編譯是一個將源代碼轉換成目標代碼的過程。但什麼是目標代碼呢?大體上的定義是:目標代碼是一種用語言表示的代碼,這種語言能通過實機或虛擬機直接執行。對於象 C 這樣的語言,目標代碼通常運行在硬體 CPU 上,而 Java 目標代碼通常運行在虛擬機上。

反編譯是困難的

正如以上所描述的,反編譯聽上去比較簡單,但它實際上是非常困難的 -- 從本質上說,它所包含的是根據小規模、低層次的行為來推斷大規模、高層次的行為。為了對此有個直觀的理解,我們把一個計算機程序看作是一個復雜的公司組織結構。高層管理人員向他們的下屬下達類似「最大程度地提高技術生產能力」的命令,下屬們再把這些命令轉變成更具體的行動,例如安裝新的 XML 資料庫

作為該公司的新雇員,您可能會問下屬他或她在做些什麼,並得到回答,「我在安裝新的 XML 資料庫。」從這句話中,您不可能推斷出其最終目的是最大程度地提高技術生產能力。畢竟,最終目標不盡相同,例如可能是分離供應鏈或累積消費者的數據。

然而,如果屬於好奇心特強的那類人,您可能會再多問幾個問題,並讓公司中不同級別的下屬回答您的問題。最後,當把所有的答案匯總後,您可能會猜到企業更大的目標是最大程度地提高技術生產能力。

如果您把計算機程序的工作方式看作類似一個公司的組織結構,那麼對於為什麼反編譯代碼不是無關緊要的,以上的這個比方就會給你一個直接的感受。從比較理論化的角度來看,這兒要引用在該領域的傑出研究員 Cristina Cifuentes 對反編譯過程的描述:

任何一個二進制改造工程都需要對存儲在二進制文件中的代碼進行反匯編。從理論上說,分離 von Neumann 上的數據和代碼就好象停機問題,因此完全的靜態翻譯是不可能的。然而,實際上可以使用不同技術來提高可被靜態翻譯的代碼的所佔比例,或者採取可在運行中被使用的動態翻譯技術。 --"Binary Reengineering of Distributed Object Technology"(請參閱 參考資料)

把目標代碼轉換成源代碼並不是反編譯時碰到的唯一問題。一個 Java 類文件潛在包含了一些不同類型的信息。知道類文件中可能包含了哪類信息對於了解您如何利用該信息以及對於信息作何種處理都是很重要的。這其實就是 Java 反匯編器所要做的。

回頁首

反匯編一個類文件

Java 類文件的真正二進制格式不是很重要。重要的是知道在那些位元組中包含了哪些不同種類的信息。到了這一步,我們將利用多數 JDK 都帶有的一個工具 -- javap。 javap 是一個 Java 代碼反匯編器,它和反編譯器是不同的。反匯編器把機器可讀格式的目標代碼(如清單 1 所示)轉換成人們可讀的代碼(如清單 2 所示)。

清單 1. 一個類文件的原始內容

0000000 feca beba 0300 2d00 4200 0008 081f 3400
0000020 0008 073f 2c00 0007 0735 3600 0007 0737
0000040 3800 0007 0a39 0400 1500 000a 0007 0a15
0000060 0800 1600 000a 0008 0a17 0800 1800 0009
...

清單 2. javap 的輸出結果

Local variables for method void priv(int)
Foo this pc=0, length=35, slot=0
int argument pc=0, length=35, slot=1

Method void main(java.lang.String[])
0 new #4
3 invokespecial #10
6 return

請注意,清單 2 所示的並不是源代碼。該清單的第一部分列出了方法的局部變數;第二部分是匯編代碼,它也是人們可讀的目標代碼。

一個類文件中的元素

javap 被用來反匯編或解包一個類文件。這里簡要列出了可以通過使用 javap 進行反匯編的 Java 類文件所包含的信息:

成員變數。每個類文件中包含了對應於該類每個數據成員的所有名稱信息和類型信息。

經過反匯編後的方法。類的每一個方法都是由一串虛擬機指令來表示的,並附帶它的類型簽名。

行號。每個方法中的每個節被映射到源代碼行,在可能的情況下,源代碼行來生成節。這使得實時系統和調試器能夠為在運行狀態的程序提供堆棧跟蹤。

局部變數名一旦方法被編譯了,這個方法的局部變數就不太需要名稱了,但是能通過對 javac 編譯器使用 -g 選項來包含它們。這也使得實時系統和調試器能幫助您。

既然對 Java 類文件的內部情況已有所了解,讓我們看一下如何能轉換這些信息來達到我們的目的。

回頁首

使用反編譯器

從概念上講,反編譯器使用起來非常簡單。他就是把編譯器逆過來用:你給它 .class 文件,它還給你一個源代碼文件。

一些比較新的反編譯器有精緻的圖形界面。但在一開始所舉的例子中,我們將使用的是 Mocha,它是第一個公開的可利用的反編譯器。在本文的最後,我會討論一下在 GPL 下一個較新的反編譯器。(請參閱 參考資料,下載 Mocha 並獲取 Java 反編譯器的清單。)

讓我們假設在目錄中有一個名為 Foo.class 的類文件。用 Mocha 對它進行反編譯非常簡單,只要鍵入以下命令:

$ java mocha.Decompiler Foo.class

❺ 如何將class文件轉換成java源文件

需要把.class反編譯.java才可以
找到eclipse下的插件,叫jadclipse,安裝好之後,只要雙擊.class文件,就能直接看源文件,包括jar包中的class文件,也可以直接反編譯。
1.下載jad1.5.8e
下載後解壓。解壓縮後將jad.exe拷貝到JRE的bin目錄下,如d:/Java/jre1.5/bin
2.下載net.sf.jadclipse_3.2.4.jar
3.安裝插件,有如下兩種方法
A.將net.sf.jadclipse_3.2.4.jar復制到D:/leaf/eclipse/plugins目錄下。
B.在d:/leaf下建立ecliplsePlungin/jadclipse/eclipse/plugins目錄,將net.sf.jadclipse_3.2.4.jar放到該目錄。在d:/leaf/eclipse/links下建jadclipse.link,內容為path=d/://leaf//ecliplsePlungin//jadclipse
3.啟動Eclipse後,在Windows(窗口)-->Perference(首選項)-->Java下面應該會多出一個JadClipse目錄,相關的設置可以在此修改配置jadclipse:設置path to decompiler為jad.exe的全路徑,如:d:/Java/jre1.5/bin/jad.exe,在Directory for temporary files中指定臨時文件的路徑,如:C:/Java/temp
4、在Eclipse的Windows-->Perference-->General->Editors->File Associations中修改「*.class」默認關聯的編輯器為「JadClipse Class File Viewer」
5、安裝完成,雙擊class文件,Eclipse將自動反編譯了。
6、把*.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

❻ eclipse怎麼把class文件轉換為java文件

需要把.class反編譯.java才可以
找到eclipse下的插件,叫jadclipse,安裝好之後,只要雙擊.class文件,就能直接看源文件,包括jar

包中的class文件,也可以直接反編譯。

1.下載jad1.5.8e

下載後解壓。解壓縮後將jad.exe拷貝到JRE的bin目錄下,如d:/Java/jre1.5/bin

2.下載net.sf.jadclipse_3.2.4.jar

3.安裝插件,有如下兩種方法

A.將net.sf.jadclipse_3.2.4.jar復制到D:/leaf/eclipse/plugins目錄下。

B.在d:/leaf下建立ecliplsePlungin/jadclipse/eclipse/plugins目錄,將net.sf.jadclipse_3.2.4.jar放到該目錄。在d:/leaf/eclipse/links下建jadclipse.link,內容為path=d/://leaf//ecliplsePlungin//jadclipse

3.啟動Eclipse後,在Windows(窗口)-->Perference(首選項)-->Java下面應該會多出一個JadClipse目錄,相關的設置可以在此修改配置jadclipse:設置path to decompiler為jad.exe的全路徑,如:d:/Java/jre1.5/bin/jad.exe,在Directory for temporary files中指定臨時文件的路徑,如:C:/Java/temp

4、在Eclipse的Windows-->Perference-->General->Editors->File Associations中修改「*.class」默認關聯的編輯器為「JadClipse Class File Viewer」

5、安裝完成,雙擊class文件,Eclipse將自動反編譯了。

6、把*.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中怎麼把.class文件編譯成java文件

第一步,查看並配置環境變數(這里不做解釋), 且把名字修改為HI。

第三步,打開 HI文本文檔並且輸入程序(程序一定要對,不能有任何錯誤)

第四步,將此文本文檔後綴名修改為「.java」並保存 ,如果出現提示對話框(如果改變文件擴展名,可能會導致文件不可用)點確定。

第五步,打開cmd並且以管理員身份運行,進入到java文件夾中

第六步,在剛才的路徑後輸入「javac HI.java」(javac後面加空格),敲回車,這時如圖所示,java文件上方會多出一個class文件(如果沒有class文件說明編譯不成功)。

第七步,繼續在剛才的路徑輸入「java HI」(java後面加空格), ,語句下方會出現「HI!」,這說明已經運行成功(也可以嘗試其他程序段)。

❽ Java中eclipse別人發的文件後綴名是class怎麼轉變成java

需要用java反編譯器

❾ 如何將編譯過的.class文件轉變為未編譯的.java文件

可以使用反編譯工具進行反匯編即可,可以獲得.class文件的.java文件.反編譯工具有如下:

DJ Java Decompiler V3.9.9.91
DJ Java Decompiler 是個反編譯的工具,可以將編譯過的CLASS文件編譯還原成為Java原始文件,並且不需要額外安裝JVM(Java Virtual Machine)或是Java SDK的工具模組即可使用。不單如此,DJJava Decompiler也兼具有Java程序編輯工具的角色,提供一些輔助功能便於程序撰寫與修改。
下載地址:http://www.skycn.com/soft/4645.html

小穎JAVA源代碼反編譯超級引摯 V1.4 標准版
最新的Java反編譯工具,支持目錄級的反編譯,也支持雙擊.class文件就可查看源文件,只限用於學習交流使用。
下載地址:http://www.skycn.com/soft/8252.html

Jad-the fast Java Decompiler V0.07
一個 Java 反編譯器,在 IE 中讀取 Java 類文件,並將他們轉換成 Java 原文件,這些原文件可以被重新編譯。
下載地址:http://www.skycn.com/soft/945.html

JDecompiler V1.0 漢化版
現在有許多反編譯Java class文件的軟體,但是大多數都採用內置的查看器來查看反編譯後的源代碼,無法顯示代碼的關鍵字。這個反編譯Java class文件的小工具,能使用自己喜歡的文本編輯器查看反編譯後的代碼,並可以高亮顯示關鍵字內容。
安裝後在資源管理器中直接雙擊.class文件就可以反編譯程序
下載地址:http://www.skycn.com/soft/25489.html

我現在就是使用最後一種工具的,結合UltraEdit-32使用,效果不錯的.JDecompiler V1.0 漢化版安裝以後,第一次使用,直接雙擊要編譯的.class文件,提示選擇文本編輯器,可以選擇UltraEdit-32,以後雙擊要反編譯的.class文件即可查看.java源代碼了,非常方便.

UltraEdit-32
UltraEdit 是一個記事本和大多數編輯程序的替換程序,支持無限制的文件大小,100,000 個詞語的拼寫檢查,完整的十六進制編輯性能,可配置的適合程序設計的語法加亮、列編輯。UltraEdit 還有許多你所需的功能。UltraEdit 可以同時處理多個文件,即使它們是以 MB 為計數的文件。它基於磁碟,甚至對於非常大的文件,也只需要很少的內存數量。UltraEdit-32 是為 Windows 98/Me 和 Windows NT/2000/XP/2003 設計。
下載地址:http://soft.hua3.net/SoftView/SoftView_1312.html

❿ 怎麼將.class變成.java

java反編譯。。。.class用jar包打過就成了可執行文件了。java屬於源碼。。。反編出來的有出入。否則java寫的軟體都成了開源的了。

熱點內容
androidaes加密 發布:2025-02-13 05:08:36 瀏覽:492
李宗瑞文件夾 發布:2025-02-13 04:27:59 瀏覽:611
phpparent的parent 發布:2025-02-13 04:18:08 瀏覽:457
小容量存儲器市場 發布:2025-02-13 04:01:11 瀏覽:373
ickeck文件夾 發布:2025-02-13 04:00:21 瀏覽:644
上傳照片文案 發布:2025-02-13 03:53:13 瀏覽:426
電腦版花雨庭怎麼調中文伺服器 發布:2025-02-13 03:32:35 瀏覽:39
linux開發android 發布:2025-02-13 03:32:34 瀏覽:490
查詢重復欄位的sql語句 發布:2025-02-13 03:12:42 瀏覽:327
8uftp上傳網站 發布:2025-02-13 03:01:57 瀏覽:245