1

字节伙伴代理是否能够克服附加 API 限制,例如“新方法定义”、“静态变量更改”?我可以看到redefineClasses正在从 Agent Builder 调用该方法,但不确定这是否也遵循与附加 API 相同的限制。

我试图了解我是否可以执行以下操作:

1) 使用应用程序类加载器加载代理 jar,例如ParallelWebappClassLoader。我的应用程序是一个 servlet webapp,在运行时它使用上面的类加载器来加载所有应用程序类。

2) 完全重新定义我的类,即任何方法添加/更新和静态/局部变量更改/更新/添加。

我确实有一个当前在附加 API 限制范围内工作的代理,但我正在努力将类加载从系统类加载器委托给应用程序。

非常感谢,

4

1 回答 1

1

这是您正在运行的 Java 虚拟机的限制。Byte Buddy 能够通过使用其 API 来“完全重新定义”一个类,但大多数 VM 会拒绝此类更改。查看动态代码演化 VM以了解是否能够应用此类更改。

于 2018-01-09T11:27:24.510 回答