『壹』 用java反編譯器編譯出來的語言一定是原來的正確源代碼嗎
void的返回值是空
可以沒有返回值,程序裡面的return;意思是從這里返回
也就是說程序執行到這一步時退出這個函數
比如說個面的這一程序:
public class Text
{
public static void main(String s[])
{
if( 2 > 1){
System.out.println("2確實大於1");
return ;
}
System.out.println("該句是不會執行的");
}
}
輸出為:2確實大於1
程序執行到System.out.println("2確實大於1");return ;
的時候就退出了main函數,不會執行下面的任何語句了
『貳』 java反編譯後得到的源碼 很混亂 怎麼辦
不是每個反編譯都能完美的,用eclipse規范下代碼,然後不符合的語法的方法,自己換成適合當前jdk版本支持的就可以了,反編譯還是得花力氣在代碼的上,偷懶有限啊。
『叄』 反編譯出來的java文件有錯誤,請問怎麼改
這個反編譯的程序 相當於自己寫的程序的 你這樣包裝改就對了try{File log = new File(System.getProperty("server.root"), file); fw = new FileWriter(log, true); bw = new BufferedWriter(fw); pw = new PrintWriter(bw, true); }catch(IOException){}return;}
『肆』 為什麼將class反編譯為java後,java直接編譯時有錯誤
midlet不存在? 如果你用的是Eclipse那你在配置環境時有問題 沒關聯EclipseMe 和關聯WTK MIDletStateChangeException應該是有異常
反編譯的軟體一般都會使用如a b c之類的變數名 導致很多類的情況下容易重名導致變數混亂 最好改成自己習慣的變數名
至於環境變數的配置按這個來
右鍵點擊我的電腦--->屬性--->高級--->環境變數--->系統變數--->新建
path: C:\j2sdk1.4.2_05\bin
classpath: .;C:\j2sdk1.4.2_05\lib\dt.jar;C:\j2sdk1.4.2_05\lib\tools.jar 確定
改了還不行的話把代碼貼出來看看 祝你走運~~~
『伍』 java庫反編譯出來的代碼跟源碼差異大不大
有點大 只能作為參考 不能當做代碼使用
『陸』 java反編譯出來邏輯不對,誰幫我整理下。
一般反編譯出來的代碼應該和源碼的順序是一樣的把
『柒』 Java反編譯後得到的不是Java源代碼。
估計你得到的是java虛擬機指令,因為.class文件與java源代碼不是一一對應的,但與虛擬機指令卻是一一對應的,就像exe文件中的機器指令與匯編指令是一一對應的,要看懂這些代碼可以參考java虛擬機指令集
『捌』 .class反編譯為Java後運行不了,源代碼如下
可以運行勒,你所謂的運行不了是什麼意思?
控制台:
j=0
i=1j=1
『玖』 用JAVA反編譯器,把.class文件反編譯後會不會和原文件不同
如果是簡單的JAVA代碼或者沒有經過混淆編譯的代碼就會使一樣或者差不多的。
但是一下兩種情況就特別不一樣:
1.經過混淆編譯的
2.使用內部類的
另外,所有的注釋都是沒有的。
當然還有其他的一些情況下你會發現不一樣了,某些情況下循環的時候就會,而且變數申明的位置會改變等等。
『拾』 從java程序里反編譯出來,一字未改再重新編譯提示100多個錯誤
反編譯的程序,不能保證100%的正確的,所以你再編譯,很明顯問題出來了。
有些地方應該還要手動修改一下。