当前位置:  开发笔记 > 编程语言 > 正文

尝试使用java代理获取对象的大小时"无法加载Premain-Class清单属性"

如何解决《尝试使用java代理获取对象的大小时"无法加载Premain-Class清单属性"》经验,为你挑选了1个好方法。

当我尝试运行java程序(java -javaagent:size.jar ObjectSizeTest)时,我收到以下错误:

Failed to load Premain-Class manifest attribute from D:\workspace\ObjectSizeTest\size.jar
Error occurred during initialization of VM
agent library failed to init: instrument

这是ObjectSizeTest的代码:

public class ObjectSizeTest {
    public static void main(String[] args) {
        String s = new String("sai");
        System.out.println(ObjectSizeFetcher.getObjectSize(s));
    }
}

MANIFEST.MF(适用于size.jar):

Manifest-Version: 1.0
Created-By: 1.5.0_18 (Sun Microsystems Inc.)

Premain-Class: ObjectSizeFetcher

这是ObjectSizeFetcher的代码:

import java.lang.instrument.Instrumentation;

public class ObjectSizeFetcher {
    private static Instrumentation instrumentation;

    public static void premain(String args, Instrumentation inst) {
        instrumentation = inst;
    }

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

小智.. 8

确保您已提供包含pre-main方法的类的完整java路径.例如像org.eclipse.anotherpckg.ObjectSizeFetcher.其次,名称和运输结束前必须有一个空格.例如

Manifest-Version: 1.0
Created-By: 1.5.0_18 (Sun Microsystems Inc.)
Premain-Class: org.eclipse.package.ObjectSizeFetcher

最后一行是由于回车.



1> 小智..:

确保您已提供包含pre-main方法的类的完整java路径.例如像org.eclipse.anotherpckg.ObjectSizeFetcher.其次,名称和运输结束前必须有一个空格.例如

Manifest-Version: 1.0
Created-By: 1.5.0_18 (Sun Microsystems Inc.)
Premain-Class: org.eclipse.package.ObjectSizeFetcher

最后一行是由于回车.


它在此代码段中不可见,但文件末尾的新行确实是必要的.
推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有