2012-08-07 41 views
4

如何從jar文件讀取(加載)java類,向類中添加一些代碼然後放回jar? 我需要寫一個腳本(一個java代碼),它可以完成所有這些工作。我想到的步驟是: 1.閱讀jar並使用java.util.jar包中的方法獲取類的名稱包 2.加載此類,從類中獲取數組,並將其更改爲 3。也許編譯代碼來應用更改 4.將更新的類放入jar文件從jar文件更改類的代碼

我不知道如何在java中執行第2和第3步。

我想寫一個新的java類,它擴展了這個類並改變了數組,但是這個數組被聲明爲public static final,這就是爲什麼我不能改變它。或者我錯了,並且有一種通過擴展類來改變數組的方法?

回答

3

一個jar只是一個ZIP文件,所以你可以用任何檔案管理器如7-ZIP提取它。它將包含類文件,它們是編譯的Java文件。您需要Java反編譯器來讀取和修改字節碼。

0

最好的解決辦法是使用JAR在你的代碼和擴展類(如果類允許你這樣做)。

如果你不能,JAR類實際上是一個ZIP壓縮文件。您可以重命名x.jar到x.zip和提取內容:

在這裏,你有更多的信息(尤其見OscarRyz的答案): How do you recompile a jar file?