2014-11-21 44 views
0

我已經查過這個,也有類似的情況,但不是確切的。作爲初學者,我需要完整的說明。我需要編譯一個Java文件並將其放回到現有的(已編譯的)Java應用程序中。這個Java代碼的來源對我來說是不可用的,因此我無法編譯整個項目。 我已經反編譯了我需要的單類文件,對其進行了更改,現在又想將其相應的類文件放回到WAR中。 我不想使用ANT或maven,而是想使用eclipse來編譯。我不知道如何解決我的java文件將具有的依賴關係如何編譯單個JAVA文件並將其放回WAR?

我顯然不想反編譯整個應用程序。

我確實有WAR文件

謝謝!

+0

如果你是一個完整的初學者,你應該去學習使用Java進行編程,然後再試圖解決反編譯/修改/編譯Java代碼。那麼我們不需要給你「完整的指示」,你可能不會理解。 (對不起......但這是一個事實......不是對你的智力的反映。) – 2014-11-21 12:15:17

+0

要添加到我的答案中:您應該解釋您正在努力實現的目標,以便讓我們解釋如何以更可持續的流程完成此任務。 – 2014-11-21 13:35:29

回答

0

只需將更新後的類文件放入爆炸戰爭中,並再次創建它的戰爭。

+0

謝謝,但我該如何創建更新的類文件? – sahana 2014-11-21 12:12:09

+0

@sahana - 這是編譯器的目的! – 2014-11-21 12:12:52

+0

如果這個類是獨立的,那麼你可以這樣做,因爲它會從命令提示符編譯,否則當你需要反編譯並重新編譯時,更新現有的類文件可能會很困難。 – 2014-11-21 12:14:49

0

您無法將單個文件放入WAR中。你可以做的是訪問服務器保持解壓縮戰爭的位置,並用新的替換舊文件。

0

從文件格式的角度來看,WAR只不過是一個zip文件。例如,您可以使用任何能夠處理zip文件的實用程序打開它,例如Winzip。因此,您可以解壓縮WAR文件,將其編譯的類添加到與其包對應的位置並再次壓縮。

但我真的不推薦這樣的過程。這很可能是一個非常非常糟糕的主意。之後它可能會導致所有類型的問題,因爲在常規過程中,戰爭文件是從一個項目構建的,顯然,您正在添加一個文件,該文件不是構建戰爭文件的項目的一部分。因此,在某些時候,您將需要重建war文件,並且您將失去對添加的文件所做的更改。

但是這是可以做到...

如何讓編譯類文件:如果你看到Eclipse中的源文件,沒有任何紅色註釋,你可能已經知道了你的文件系統上。只需使用文件瀏覽器或其他東西。如果你看不到它,請在Eclipse中按下Control + B進行編譯(這些指令不適用於Maven項目)。

您應該將您的文件添加到生成war文件的項目中,以便將整個工作保持在一個一致的單元中。因此,您可以一遍又一遍地構建,而不用擔心像您在此計劃的更改。想想:點擊一下即可構建完整,完整,可用的戰爭檔案。

+0

謝謝!但是由於我沒有源代碼,是否有可能將我的戰爭導入爲一組可以幫助我編譯我的文件的jar(考慮到我的java文件有一些依賴)? – sahana 2014-11-24 05:59:33

0

這不是你要找的嗎?

http://www.mkyong.com/eclipse/how-to-configure-hot-deploy-in-eclipse/

它可以取代Java類中的更小的代碼修改,而部署在一臺服務器。因此它可以節省您部署時間。但是它有一個限制:如果你做了大規模的修改,那麼你需要重新編譯整個.war,然後重新連接到你的服務器。

相關問題