gpt4 book ai didi

java - 使用 JRebel 交换类的字节码

转载 作者:行者123 更新时间:2023-11-30 11:52:50 26 4
gpt4 key购买 nike

如前所述,我想在执行期间更改字节码。我没有运行任何类型的应用程序或网络服务器,它只是一个命令行程序。

当然我可以只创建一个新的 ClassLoader,但是从性能的角度来看这是不可行的。

我遇到了 JRebel,它应该能够完成这些事情,但我找不到任何示例和教程来存档它。

Java Hotswap 不是一个选项,因为它不能处理多个类加载器

演示我想要什么的简单示例:

Class Car
{
public void print() { System.out.println("I am Type A"); }
}

首先我要加载类 Car:

Car myCar = new Car();

做一些事情

myCar.print();  // => I am Type A

更改源代码

sourceCode.replace("Type A", "Type b");

同一个类加载器中重新编译并更改字节码

再次执行同一个类

myCar.print(); // => I am Type B

希望我表达清楚了。

最佳答案

JRebel 在您重新编译后为您交换字节,您不必调用 API 来实现。

关于java - 使用 JRebel 交换类的字节码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6639890/

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