2012-11-05 33 views
0

我的一位同事寫了一堂課。他的班級使用我的班級。而不是告訴JVM我的班級每次他的課程被編譯時,他把這兩個類打包成一個jar文件,我可以像這樣運行:java -jar hisclass.jar如何在jar文件中替換類文件?

現在我決定對我的班級進行更改。因此,由於我的課程被預編譯進他的jar,他的課程(我仍然需要使用)使用我的老課程。我的同事離開了,我不知道他是如何將所有東西都打包成jar文件供我使用的。

現在,當我嘗試java -jar hisclass.jar時,當他的類調用我的類時,它會調用我的類的舊版本,從而產生錯誤,因爲舊版本的類不再正常工作。任何人都可以幫我重新編譯他的課程到一個罐子裏,或者只是更新我的課程?

+2

你可以從jar文件開始:http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/jar.html – scrappedcola

+0

這裏有很多信息丟失。組合的jar是否只包含他的類和你的,還是包含其他的依賴項?你有他的課程的源代碼嗎?你能重新編譯他的課程嗎?您是否在使用NetBeans或Eclipse等IDE? –

+0

是的,這個jar還有很多其他的文件。我有他的源代碼並可以重新編譯它。我在Linux機器上使用PuTTY,但是我也可以在Eclipse上打開整個項目(它存儲在SVN存儲庫中)。 – imnotfred

回答

2

在Eclipse中,我認爲它應該足以導出代碼爲jar文件。

http://viralpatel.net/blogs/create-jar-file-in-java-eclipse/

所以基本上你得到的是舊罐子,抽取,加載在Eclipse和導出爲jar文件的項目。 你完成了。

+0

謝謝。我只是在eclipse中將他的源代碼作爲jar來導出,並且一切正常。 – imnotfred

+0

不客氣,我很高興你解決了你的問題。 – fonZ

0

我不確定你是否可以擺脫它,但你可能只想嘗試將你的類編譯成一個jar文件,然後在WinRAR等壓縮代理中打開他的jar文件,然後簡單地覆蓋舊的包含在他的jar文件中的jar文件與你最新編譯的版本。一個更好的方法(如果他的類沒有被混淆)將是在Java IDE中打開他的jar文件,並從中創建一個新的項目。然後在同一個IDE中引用您在項目中從他的jar文件創建的項目。這樣,您可以在同一個環境中對兩者進行更改,並且在更改後更容易編譯代碼。

0

您可以提取您的.jar文件並更改已編譯的類。

相關問題