2011-12-09 42 views
2

如何將.jar轉換爲.war文件格式。基本上我想要讀file.jar。但是當我在eclipse中導入時,它顯然會導入爲.class文件。我想閱讀.java格式並閱讀代碼。將.jar轉換爲.war

請幫忙

+2

.jar是否包含.java源代碼文件?如果是這樣,Eclipse應該給你看。您可以通過解壓縮來打開jar文件進行檢查。如果沒有,那麼沒有消息來源......這和.war有什麼關係? – Thilo

+0

如果你的源代碼是開源的,或者使用反編譯器,你可以從網上下載源代碼。 – aishwarya

+3

您的問題的第一句和第二句表明您可能對「war」文件的錯誤概念。將'jar'轉換爲'war'不會幫助您查看類的源代碼。 – Jesper

回答

1

請記住.jar和.war是不同的文件格式。儘管它們是一組壓縮文件,但戰爭文件有一個standard organization structure。作爲一個jar文件,簡單地說就是一個標準的壓縮檔案文件,通常用作打包的二進制檔案。你試圖做的事情很難實現,並且沒有直接的方法來做到這一點。你必須手動完成。

1

正如@Santosh所說,war和jar是相同的壓縮(所以你可以將它重命名爲jar並使用jar -x來解壓縮它),但內部組織是不同的。在我看來,像你只是想撈出java文件,解壓縮這樣就夠了......

mv file.war file.jar 
jar xf file.jar 
1

如果你正在嘗試轉換jarwar的原因僅僅是因爲你希望能夠要查看jar中類的源代碼,然後嘗試將其轉換爲war不是正確的做法。

一個Java jar(Java ARchive)文件就像一個壓縮文件,一個可以包含其他文件的壓縮文件。通常它將包含class文件(編譯的Java類)。 A war(Web ARchive)與jar文件相同,但具有特定的指定目錄結構,使其適合在Java EE應用程序服務器上部署。將jar文件轉換爲war文件不會自動使您能夠在Eclipse中查看類的源代碼。

要在Eclipse中查看源代碼,您需要分別下載這些源代碼。對於許多開源項目,您可以在單獨的jar中獲得源代碼。例如,對於圖書館somelib.jar,您可能會在找到圖書館的網站上找到somelib-sources.jar或類似的東西。

然後,在Eclipse中,右鍵單擊附加到您的項目作爲一個依賴的jar文件,並從彈出菜單中選擇屬性。然後轉到「Java源附件」。輸入...-sources.jar的位置或包含源代碼的目錄,然後單擊確定。

1

您的陳述意味着您的file.jar不包含Java代碼。

在這裏,我建議你。

  1. 迥異.jar.war文件格式。它已經在上一個答案。

  2. 如果您想從file.jar中讀取代碼,實際上您可以先反編譯它。有很多易於使用的Java反編譯器。我建議你爲此使用JD