Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PlatformClassLoader作为JavaAgent的引导类加载器_Java_Classloader_Javaagents - Fatal编程技术网

PlatformClassLoader作为JavaAgent的引导类加载器

PlatformClassLoader作为JavaAgent的引导类加载器,java,classloader,javaagents,Java,Classloader,Javaagents,在我的JavaAgent中,我定义了一个premain方法,因此在MANIFEST文件中 Premain-Class: com.github.lppedd.agent.MyAgent 默认情况下,代理似乎正在使用AppClassLoader定义类。 但是,我想切换到平台类加载器(或其他一些父类加载器),与同一JVM上下文中的另一个应用程序共享类定义 这在JavaAgent中是可能的吗?您可以确保要在不同类加载器之间共享的类由这两个类加载器的共同父类加载,例如引导类加载器。正如我在文章中所说,如

在我的JavaAgent中,我定义了一个
premain
方法,因此在
MANIFEST
文件中

Premain-Class: com.github.lppedd.agent.MyAgent
默认情况下,代理似乎正在使用
AppClassLoader
定义类。
但是,我想切换到
平台类加载器
(或其他一些父类加载器),与同一JVM上下文中的另一个应用程序共享类定义


这在JavaAgent中是可能的吗?

您可以确保要在不同类加载器之间共享的类由这两个类加载器的共同父类加载,例如引导类加载器。正如我在文章中所说,如果没有一个具体的例子,就很难说出任何具体的东西,因为解决方案取决于你的具体情况。@kriegaex谢谢!代理作为premain加载,因此在启动时通过命令行。@kriegaex代理注册MBean,然后由IntelliJ插件检索。这会导致ClassCastException。显然是因为不同的类加载器。谢谢你提供的信息。除此之外,MCVE这个词还有什么不清楚的地方吗?@kriegaex-nope,但提供一个例子需要一些时间。要运行它,您还必须运行IntelliJ IDEA的一个实例,安装不是立即进行的。如果你说你能胜任,我可以提供。