需求: 我们需要在plugin.jar中破解一个类,详细地说,改变一个类的非静态方法的详细实现。与最新的jre一样,-Xbootclasspath / p不起作用,只有-Xbootclasspath / a有效。我们也不想改变整个jre。
我们知道我们的最后一个解决方案是直接更改plugin.jar文件。但是想知道是否有更好的解决方案,不需要直接更改jar文件。
例如,不知道JVMTI或JVMPI之类的东西是否有效?或者以某种方式以简单的方式改变JVM的实现?答案 0 :(得分:5)
取决于你的类,但你可以使用 javaagent 来注入一个自定义的ClassFileTransformer来加载一个不同的类,如果查询...(javaagents上的简单example)。但是这只有在以前没有加载类的情况下才有效...