2014-02-28 107 views
4

我正在研究需要將.class文件反編譯爲源代碼的java項目,我發現了許多方法,例如JAD反編譯器和'javap -p '方法...,但我認爲這些方法不能以編程方式完成(請告訴是否可以),是否有任何方法可以編程方式完成此項,如果您向我展示任何庫,將不勝感激。使用java庫將.class文件反編譯爲.java源代碼

+1

https://code.google.com/p/back2code/source/checkout –

+1

爲什麼不使用Procyon? – Antimony

+0

@SachinVerma你給出的鏈接有一點幫助,但它沒有達到我的答案, – droidev

回答

6

Procyon是一個用Java編寫的Java反編譯器,它可以直接從Java代碼中調用。例如:

final PrintWriter writer = new PrintWriter(System.out); 

try { 
    com.strobel.decompiler.Decompiler.decompile(
     "W:\\Hello.class", 
     new com.strobel.decompiler.PlainTextOutput(writer) 
    ); 
} 
finally { 
    writer.flush(); 
} 

還有一個decompile()重載接受DecompilerSettings例如,你可以用它來切換某些功能,並就如何解決類依賴性反編譯器的提示。如有任何問題,請隨時與BitBucket聯繫。

+0

其實我需要在控制檯打印.java文件,我必須使用什麼方法,你有任何文件Proycon? – droidev

+1

上面的例子將打印輸出到控制檯。如果您想打印到其他來源,則在創建PlainTextOutput時只需傳遞另一種'Writer'。我目前沒有任何文檔,但我可以回答您可能遇到的任何問題。 –

+1

不,它不是在控制檯上打印,只是顯示構建成功完整。 – droidev