【问题标题】:Javaagent gives ClassNotFoundExceptionJavaagent 给出 ClassNotFoundException
【发布时间】:2015-08-02 10:39:59
【问题描述】:

我正在尝试使用名为 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 的清单文件(命名为 agent.jar):

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

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

【问题讨论】:

    标签: java classnotfoundexception manifest.mf javaagents


    【解决方案1】:

    比较主类的类路径(你故意写的那个)和你得到异常的类的类路径。

    清单中的 Class-Path 与您编写的可执行 JAR 相关。

    【讨论】:

    • 有人可以提供一些见解,说明为什么这是正确答案以及实际错误是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2013-07-17
    • 2011-07-04
    • 2017-01-09
    • 2019-12-27
    相关资源
    最近更新 更多