2015-06-22 51 views
2


如何從war文件中獲取java源代碼?

我沒有最新的源代碼,但在服務器上部署了war(最新)文件。

請建議
1)獲取戰爭的源代碼/耳的最佳途徑
2)比較和合並/更新出現在戰爭/耳代碼可用的源代碼,但在可用的源代碼所缺少(我使用的Eclipse IDE)

在此先感謝

+0

提取戰爭並使用反編譯器嘗試獲取戰爭中任何java類的源文件 – jgr208

回答

6

戰爭文件基本上是zip文件,所以他們很容易提取。 (使用解壓縮或只是重命名文件) 接下來,您可以使用JD的Java反編譯器。 但是,由於編譯器進行了大量優化,因此不會得到原始的Java代碼。 但一旦你提取從EAR類應該給你一個很好的起點

2

/WAR /罐,採用JAD反編譯你感興趣,回到源代碼:http://varaneckas.com/jad/

我不確定是否有任何即開即用的工具將比較/區分您的原始源與源自JAD之類的反編譯源。另外請記住,將類反編譯回源代碼並不會生成與原始代碼相同的源代碼 - 代碼風格將會不同,甚至可能包含某些代碼結構。在原始源代碼和反編譯源代碼之間做差異是很困難的。

如果您有原始源代碼,但不是當前部署的代碼的源代碼,那麼可能更好的問題是問'爲什麼不'。如果您的構建過程中缺少某些內容,而您沒有跟蹤每個構建使用的源代碼,可能這是解決前進的一個更容易的問題,而不是嘗試執行某些笨拙和容易出錯的問題,如其他源代碼的差異並反編譯源代碼?

1

確切答案:不可能從war獲取原始源代碼(.java文件),而不是jarjava存檔)。當您創建一個jar文件時,您可以決定是否要包含.java文件。只有一個Java反編譯器可以幫助,請參閱其他答案。