gpt4 book ai didi

java - 反编译 JAR,修改它,再重新编译?

转载 作者:行者123 更新时间:2023-12-02 02:33:15 45 4
gpt4 key购买 nike

我有一个旧的 Jar 文件,我必须对其进行修改才能使其正常工作。我已经用 jd-gui 反编译了它,并更改了需要更改的部分。我现在想知道我必须做什么才能取回 jar ?我想我必须添加库,但是没有额外的 lib 目录。

如何将所有内容组合在一起?

@斯蒂芬·C“因此,当您进行更改并重新编译时,生成的“.class”文件可能具有意外的“这到底有多相关?我只想要 Jar 文件的功能,而不是它的 1:1 副本。

Jar 文件未签名。无论如何,签署 Jar 文件的确切原因是什么?如果我从另一个程序启动它?

最佳答案

如果在反编译整个 jar 后缺少依赖项,这可能意味着 jar 不包含它们。创建 jar 时,您可以选择不在其中包含依赖项,但这假定它们在运行时在类路径中可用。运行原始jar时检查是否与classpath下的其他jar文件有关系。参见 this answer有关如何实现此目的的详细信息。一旦确定了所有依赖项,就可以从 IntelliJ 等 IDE 轻松编译 jar。/Eclipse或来自 command line .

作为旁注,如果您想对 jar 进行较小或孤立的更改,我建议编辑字节码(对于小的编辑更容易)。我更喜欢 this bytecode editor .

如果部分代码反编译失败,重新编译后jar的功能将不会恢复。在这种情况下,与其遍历所有可用的反编译器并希望您可以反编译该代码,我建议您确定要编辑的类集,修改其余类,以便它们编译并且没有任何对您感兴趣的类的副作用(不要删除这些引用的任何内容)并编译 jar(即使这不是您想要的 jar)。然后你可以 extract只有你想从 jar 中修改的类文件,和 overwrite他们在原来的 jar 里。这仅在您的更改没有任何副作用时才有效。

关于java - 反编译 JAR,修改它,再重新编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64734289/

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