Javaagent 给出 ClassNotFoundException

标签 java classnotfoundexception manifest.mf javaagents

我正在尝试使用一个名为 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 类上运行 javaagent(我特意在其中定义了一个 main 函数来测试它),那么程序会正常运行。如果有必要,我将 javaagent 的 list 文件(命名为 agent.jar)粘贴在这里:

Premain-Class: com.LoggerAgent
Class-Path: lib/javassist.jar
Agent-Class: com.LoggerAgent
Boot-Class-Path: agent.jar

关于这里出了什么问题有什么想法吗?

最佳答案

比较主类(您有意编写的那个)的类路径和您在其中获得异常的类的类路径。

list 中的类路径与您编写的可执行 JAR 相关。

关于Javaagent 给出 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31771012/

相关文章:

java - JList 没有滚动条

java - List<Object> SpringBoot JPA 存储库中的 findBy 属性

java - "No Main Manifest Attribute"在 -----.jar Netbeans

java - 从 jar 中提取文件后,如何将它们重新组合成一个有效的 jar?

java - Maven 安装后找不到 JDK com.sun.tools

Java 单元测试设置 Manifest 属性

java - Android 开发 - 我应该使用基于 XML 的布局,还是只使用 java 代码?

java - 如何在 while 循环中更新 jLabel

java - 使用 RMI 的 ClassNotFoundException

java - "Could not find the main class"