从jar文件更改类的代码

时间:2012-08-07 14:27:49

标签: java jar

如何从jar文件中读取(加载)java类,向类中添加一些代码然后放回到jar中? 我需要编写一个执行所有这些操作的脚本(java代码)。我想到的步骤是: 1.使用java.util.jar包中的方法读取jar并获取具有类名的条目 2.加载此类,从类中获取数组,进行更改 3.也许编译代码以应用更改 4.将更新的类放入jar文件

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

我正在考虑编写新的java类来扩展这个类并更改数组,但是这个数组被声明为public static final,这就是为什么我无法改变它。或者我错了,有一种方法可以通过扩展类来更改数组?

3 个答案:

答案 0 :(得分:3)

jar只是一个ZIP文件,因此您可以使用7-ZIP之类的任何存档管理器提取它。它将包含类文件,这些文件是已编译的Java文件。您需要一个Java反编译器来读取和修改字节码。

答案 1 :(得分:3)

Extract - > Decompile - >添加代码 - >创建Jar

答案 2 :(得分:0)

最好的解决方案是在代码中使用JAR并扩展类(如果类允许你这样做)。

如果你不能,那么JAR类实际上是一个ZIP存档。您可以将x.jar重命名为x.zip并提取内容:

这里有更多信息(特别参见OscarRyz的回答): How do you recompile a jar file?