我问题的根源是我试图使用SizeOf
sourceforge project
从部署在JBoss AS7上的web应用程序获取
ClassNotFoundException
对于
net.sourceforge.sizeof.SizeOf
.我补充道
-javaagent:/path_to_jar/SizeOf.jar
到服务器的
JAVA_OPTS
并查看
System.out.println
来自服务器启动时的premain方法(JAVAGENT:为类SizeOf调用premain指令插入)。然而,当我试图打电话
SizeOf.sizeOf(obj)
在servlet的doGet方法中,应用程序失败,出现前面提到的情况
ClassNotFoundException类未找到异常
。
如果有人能告诉我如何使用JBoss AS7来实现这一点,那将很有帮助(我让它在Eclipse运行配置中运行——相当于从命令行运行)。除此之外,我真正想做的是了解类加载是如何为Java代理工作的。我能找到的最好的文档在
the offical JVM docs
,这是相当稀疏的。关于类加载,它所说的只是Premain类将由系统类加载程序加载。我看到一篇博客文章,建议不需要将jar放在类路径上,因为-javaagentJVM参数会处理这一问题,所以看起来我不应该将SizeOf jar添加为AS7模块。我是不是错过了什么?