gpt4 book ai didi

java - 反编译修复代码后重新编译成*.Jar?

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:27 25 4
gpt4 key购买 nike

我有一个 myfile.jar 文件。我使用jd-gui反编译了myfile.jar中一个文件夹中的所有*.class。我在许多文件夹中得到许多 *.java 文件

修复了一些*.java中的代码后,现在我想将所有*.java重新编译回*.class,并将整个文件夹打包回myfile.jar。

我该怎么做?

(这是我第一次玩java代码。)

最佳答案

您需要一个 Java 开发工具包 (JDK)。这包括一个 Java 编译器(通常命名为 javac)和一个 jar 归档器。

假设您在目录名称 src 中有 java 文件(然后根据它们的包结构),您将使用

javac -d classdir -sourcepath src src/*.java src/*/*.java src/*/*/*.java ...

编译所有文件。 (调整*的个数为目录层数,如果你只有一些文件夹里有源文件,也可以单独列出来。如果有些类依赖其他的,你可以省略其他的,编译器会发现并自动编译它们。)

如果程序需要外部库,请为它们提供一个 -classpath 参数。

现在我们在目录 classdir 中有了所有已编译的类。查看您的原始 jar 文件:其中的任何非类文件也应该复制到您的 classdir 中(在它们之前的相同相对目录中)。其中最著名的包括 META-INF/MANIFEST.MF

然后我们从中创建一个新的 jar 文件。 jar 工具包含在 JDK 中。

jar cfm mypackage.jar classdir/META-INF/MANIFEST.MF -C classdir .

(您也可以简单地使用您信任的 zip 程序并将生成的 zip 文件重命名为 .jar。如果您的文件具有非 ASCII 名称,请确保将文件名编码设置为 UTF-8。)

关于java - 反编译修复代码后重新编译成*.Jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6604097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com