java代碼的編譯,就是你寫完代碼,java編譯器把它編譯成java虛擬機認識的代碼,然後再由虛擬機執行它。反編譯就是反過來,當然這不是java虛擬機乾的事兒,是你找反編譯工具乾的事兒,把編譯過的代碼反編譯成人看得懂的源代碼。
㈡ 如何進行JAVA程序的反編譯
JAVA是採用一種稱做「位元組編碼」的程序結構,分為小程序(嵌入到HTML文件中)和應用程序(直接在命令狀態下執行)兩種類型。無論哪種結構,一旦用JAVAC 命令編譯後,均變成後綴為CLASS的同名可執行文件。這種文件是不可閱讀的代碼。 經查閱了SUN公司的JDK(JDK1.1.3)文檔資料後,我找到了一個據稱是可反編譯JAVA的JAVAP文件(EXE),這個文件位於\JDK\BIN\ 下面,經按說明使用後,感到失望,原來這個「反編譯」僅可反編譯出JAVA程序的數據區(定義)、若干方法和類的引用等。 這里我用了一個簡單例子來說明問題。 詳情見: http://java.e800.com.cn/articles/2010/1115/1289796925240_1.html
㈢ java反編譯出來邏輯不對,誰幫我整理下。
一般反編譯出來的代碼應該和源碼的順序是一樣的把
㈣ java反編譯出break MISSING_BLOCK_LABEL_*應該怎麼改
private
void
createData(Config
config)
throws
IOException
{
RandomAccessFile
raf
=
null;
try
{
raf
=
new
RandomAccessFile(config.getTp(),
"rw");
raf.setLength(config.getFileSize());
}
finally
{
if
(raf
!=
null)
raf.close();
}
}
應該是這樣吧,以前遇到過,你的反編譯程序太水了,建議換個。
㈤ java反編譯出來的代碼求解,解出後可追加50分
為什麼不用Java Decompiler反編譯呢?
不會出現這樣的情況
唯一不足的就是反編譯後原來的變數會變成數值
㈥ java的反編譯怎麼使用,說具體點
使用SDK提供的反編譯器javap.exe可以將位元組碼反編譯為源碼。
㈦ Java反編譯代碼解釋:
首先,mecuryhope所回答的,僅僅是java層面的東西,但是卻不了解反編譯的過程。
其次,label175和break這些,並不是java代碼,而是反編譯的工具無法真實還原導致的。
label175是一個標簽,而break label175是表示跳轉到label175這里。
㈧ java 反編譯的時候 有個 label0 : { 這里有代碼 } 其中的 label0 是什麼意思 我們也用得到嗎
某個跳轉、if、或循環等