来自静态嵌套的代理 class
Agent from a static nested class
为什么无法从静态嵌套 class 创建代理?
我没有收到任何错误或任何错误,只是程序没有 运行,所以很难说哪里出了问题。
package sfjl;
import java.lang.instrument.Instrumentation;
public final class SFJL_Profiler {
private SFJL_Profiler() {}
//
static public final class SFJL_Profiler_Agent {
private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) {
instrumentation = inst;
}
public static long sizeof(Object o) {
return instrumentation.getObjectSize(o);
}
}
//
static public final class SFJL_Profiler_Console_Printer {
}
}
清单:
Manifest-Version: 1.0
Premain-Class: sfjl.SFJL_Profiler.SFJL_Profiler_Agent
Agent-Class: sfjl.SFJL_Profiler.SFJL_Profiler_Agent
Can-Redefine-Classes: true
Can-Retransform-Classes: true
这是一个正在运行的非嵌套代理:
由于是嵌套class,分隔符不是$.
sfjl.SFJL_Profiler$SFJL_Profiler_Agent
它工作正常,但 Agent-Class
的值(就此而言,Main-Class
和 Premain-Class
也是)采用 JVM 格式。所以,试试:
Agent-Class: sfjl.SFJL_Profiler$SFJL_Profiler_Agent
$ 在 JVM 语法中分隔内部 类,而不是点。
为什么无法从静态嵌套 class 创建代理? 我没有收到任何错误或任何错误,只是程序没有 运行,所以很难说哪里出了问题。
package sfjl;
import java.lang.instrument.Instrumentation;
public final class SFJL_Profiler {
private SFJL_Profiler() {}
//
static public final class SFJL_Profiler_Agent {
private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) {
instrumentation = inst;
}
public static long sizeof(Object o) {
return instrumentation.getObjectSize(o);
}
}
//
static public final class SFJL_Profiler_Console_Printer {
}
}
清单:
Manifest-Version: 1.0
Premain-Class: sfjl.SFJL_Profiler.SFJL_Profiler_Agent
Agent-Class: sfjl.SFJL_Profiler.SFJL_Profiler_Agent
Can-Redefine-Classes: true
Can-Retransform-Classes: true
这是一个正在运行的非嵌套代理:
由于是嵌套class,分隔符不是$.
sfjl.SFJL_Profiler$SFJL_Profiler_Agent
它工作正常,但 Agent-Class
的值(就此而言,Main-Class
和 Premain-Class
也是)采用 JVM 格式。所以,试试:
Agent-Class: sfjl.SFJL_Profiler$SFJL_Profiler_Agent
$ 在 JVM 语法中分隔内部 类,而不是点。