【问题标题】:Issue running Java Agent运行 Java 代理的问题
【发布时间】:2017-11-29 08:48:45
【问题描述】:

我正在尝试运行一个基本的 java 代理。

我跟着这个:

How to put classes for javaagent in the classpath

但我收到了这些错误

Failed to find Premain-Class manifest attribute in target/demo.jar
Error occurred during initialization of VM
agent library failed to init: instrument

这是我的经纪人

package com.example.demo;

import java.lang.instrument.Instrumentation;

public class DriftDetector {

    private static Instrumentation instrumentation;

    public static void premain(String agentArgs, Instrumentation inst) {

        System.out.println("Inside premain");
        instrumentation = inst;
    }

    public static long getObjectSize(Object o) {
        return instrumentation.getObjectSize(o);
    }
}

我的 manifest.mf(在 META-INF 中)

Manifest-Version: 1.0
Premain-Class: com.example.demo.DriftDetector

和我的主要课程

package com.example.demo;
import static com.example.demo.DriftDetector.getObjectSize;

public class DemoApplication {

    public static void main(String[] args) {
        System.out.println("Size of Long: " + getObjectSize(new Long(1L)));
    }
}

创建jar的命令

mvn package

运行命令

java -javaagent:target/demo.jar -jar target/demo.jar

【问题讨论】:

    标签: java javaagents


    【解决方案1】:

    您的 ma​​nifest.mf

    中很可能有错误

    清单版本:1.0 Premain-Class:DriftDetector

    像这样的Tty对我有用

    【讨论】:

      【解决方案2】:

      您可以从https://github.com/kananindzya/javaagent-example 中查看一些 javaagent 示例。

      在“内存计数器”模块中,您可以在 README.md 中找到有关如何手动构建和运行或使用 maven 和 idea 的信息。

      【讨论】:

        最近更新 更多