gpt4 book ai didi

java - 您如何分析致命的 -javaagent 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:29 24 4
gpt4 key购买 nike

我正在尝试使用 java.lang.instrument API 添加对 java.lang.Object 构造函数的静态方法调用。我知道我的基础知识是正确的,因为如果我调用 System.gc() 方法,它就会起作用。我通过使用和不使用仪器运行 -verbosegc 来验证这一点。如果我将方法调用更改为我自己的包中的静态类/方法,我会收到 fatal error :

native 方法中线程“main”中的异常 fatal error :-javaagent 处理失败

工作目录中没有创建转储文件,因此我很难找出问题所在。其他信息:

  • 我确保静态方法类在转换前加载到 premain 方法中
  • 静态方法调用不会导致创建新对象
  • 最后加载的类是 InterruptedIOException,尽管我认为这只是一个副作用

提前致谢。

最佳答案

是的,正如@barry 在他的评论中指出的那样,您必须将 Boot-Class-Path 定义添加到 Java 代理的 list 中。对我来说,我在代理中使用了 javassist 来创建字节码,所以我的 list 如下所示:

Manifest-Version: 1.0
Premain-Class: com.company.agent.Agent
Agent-Class: com.company.agent.Agent
Boot-Class-Path: javassist-3.18.2-GA.jar agent.jar

我将所有应用程序的 jar 文件都放在与 javassist 和代理 jar 相同的 lib 目录中。类路径上的所有内容都在同一个文件夹中,它可以正常工作。

关于java - 您如何分析致命的 -javaagent 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com