如何从jar文件中读取(加载)java类,向类中添加一些代码然后放回到jar中? 我需要编写一个执行所有这些操作的脚本(java代码)。我想到的步骤是: 1.使用java.util.jar包中的方法读取jar并获取具有类名的条目 2.加载此类,从类中获取数组,进行更改 3.也许编译代码以应用更改 4.将更新的类放入jar文件
我不知道如何在java中执行第2步和第3步。
我正在考虑编写新的java类来扩展这个类并更改数组,但是这个数组被声明为public static final,这就是为什么我无法改变它。或者我错了,有一种方法可以通过扩展类来更改数组?
答案 0 :(得分:3)
jar只是一个ZIP文件,因此您可以使用7-ZIP之类的任何存档管理器提取它。它将包含类文件,这些文件是已编译的Java文件。您需要一个Java反编译器来读取和修改字节码。
答案 1 :(得分:3)
答案 2 :(得分:0)
最好的解决方案是在代码中使用JAR并扩展类(如果类允许你这样做)。
如果你不能,那么JAR类实际上是一个ZIP存档。您可以将x.jar重命名为x.zip并提取内容:
这里有更多信息(特别参见OscarRyz的回答): How do you recompile a jar file?