当我尝试运行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
最后一行是由于回车.
确保您已提供包含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
最后一行是由于回车.