gpt4 book ai didi

java - 如何对 jar 中的 .class 文件进行 monkeypatch

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:51 28 4
gpt4 key购买 nike

我有一个无法修改的 jar 文件,但我想使用不同的 .class 文件来代替 jar 的其中一个成员。当 jar 中的代码尝试加载它时,我如何告诉 Java 使用外部 .class 文件?

最佳答案

您可以使用完全相同名称的替换类编译另一个 jar 文件,并将其放在类路径中 jar 文件的前面。例如,这就是各种 slf4j bridge jar 所做的,用同源 slf4j 代码替换对 log4j 或 Jakarta Commons Logging 库代码的调用;一个人不需要以这种方式维护两套日志系统和配置。

如果你想覆盖一个java...类,你可以使用一些命令行选项来改变引导类路径。查看 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html 中的 -Xbootclasspath 选项.注意警告。

如果您需要升级 Sun 使用的第三方 jar,还有 lib/endorsed 目录。 Oracle 使用其他组织的 XML 和 CORBA 库;如果他们发布了一个新版本并且您需要采用它,您可以。

您可以使用 AspectJ 检测代码并可能替换它。如果需要,around 建议可以调用原始代码。

你可以看看你是否真的需要替换原来的代码。一些系统提供定制 Hook 。

关于java - 如何对 jar 中的 .class 文件进行 monkeypatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907202/

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