从jar文件更改类的代码

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

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

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

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

提取 – > 反编译 – >添加代码 – >创建Jar

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

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

在这里你有更多的信息(特别参见OscarRyz的答案): 你如何重新编译一个jar文件?