Javaagent 给出 ClassNotFoundException
Javaagent gives ClassNotFoundException
我正在尝试使用一个名为 LoggerAgent 的 javaagent 来获取一些 Java 应用程序日志的详细信息。但是我得到一个 ClassNotDefinedException:
Exception in thread "main" java.lang.ClassNotFoundException: com.LoggerAgent
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:304)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
FATAL ERROR in native method: processing of -javaagent failed
Aborted
有趣的是,如果我运行同一个LoggerAgent class上的javaagent(我特意在里面定义了一个main函数来测试这个),那么程序运行正常。如果有必要,我将 javaagent 的清单文件(命名为 agent.jar)粘贴到此处:
Premain-Class: com.LoggerAgent
Class-Path: lib/javassist.jar
Agent-Class: com.LoggerAgent
Boot-Class-Path: agent.jar
关于这里出了什么问题有什么想法吗?
比较主要 class(您有意编写的)的 class 路径和您在其中遇到异常的 class 的 class 路径.
清单中的 Class-Path 是相对于您编写的可执行 JAR 的路径。
我正在尝试使用一个名为 LoggerAgent 的 javaagent 来获取一些 Java 应用程序日志的详细信息。但是我得到一个 ClassNotDefinedException:
Exception in thread "main" java.lang.ClassNotFoundException: com.LoggerAgent
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:304)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
FATAL ERROR in native method: processing of -javaagent failed
Aborted
有趣的是,如果我运行同一个LoggerAgent class上的javaagent(我特意在里面定义了一个main函数来测试这个),那么程序运行正常。如果有必要,我将 javaagent 的清单文件(命名为 agent.jar)粘贴到此处:
Premain-Class: com.LoggerAgent
Class-Path: lib/javassist.jar
Agent-Class: com.LoggerAgent
Boot-Class-Path: agent.jar
关于这里出了什么问题有什么想法吗?
比较主要 class(您有意编写的)的 class 路径和您在其中遇到异常的 class 的 class 路径.
清单中的 Class-Path 是相对于您编写的可执行 JAR 的路径。