0
回答
【求助】关于JAVA动态更新的AgentInitializationException问题
注册华为云得mate10,2.9折抢先购!>>>   

Java5提供javaagent开始,动态更新方法体内部的代码成为了可能,Java6中提供的agentmain方法可以在虚拟机启动后替换方法的字节码,来达到java虚拟机动态更新的目的。

但是在自己使用的过程中遇到了一些问题,没有足够的资料支持

环境:MacOs

动态脚本报错如下:

Exception in thread "main" com.sun.tools.attach.AgentInitializationException: Agent JAR loaded but agent failed to initialize

at sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:103)

at Attach.main(Attach.java:35)

被附着程序报错如下:

Exception in thread "Attach Listener" java.lang.ClassNotFoundException: loaded.LoadedAgent

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:280)

at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:348)

Agent failed to start!

但是我确认附着的agent.jar中已经定义了agentmain方法并且在MANIFEST.MF中添加了Agent-Class的类全路径。。。

头疼 求助!

举报
顶部