Tomcat 中能否实例化Instrumentation,并且使用

青耕寐鱼 2016-06-04 08:51:00
Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。
————————————————————————————————
在这篇文章中提到(http://shensy.iteye.com/blog/1765760) Instrumentation的一个用法,用来测量对象所占内存大小,在Java程序中,添加VM参数(-javaagent:./libs/SizeOf.jar)可以运行,但是放到Tomcat中,即使在Tomcat运行时添加了VM参数(-javaagent:./libs/SizeOf.jar),也会出错,出现
java.lang.IllegalStateException: Instrumentation is null
at net.sourceforge.sizeof.SizeOf.sizeOf(Unknown Source)

不知道有没有人知道在Tomcat中怎么使用这个接口
...全文
471 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Home_Code 2016-10-18
  • 打赏
  • 举报
回复
java.lang.IllegalStateException: Instrumentation is null 是因为没有初始化成功 控制台出现JAVAGENT: call premain instrumentation for class SizeOf,说明初始化成功。 可以使用。 1.把sizeof.jar放入tomcat的lib中 C:\apache-tomcat\lib 2.在C:\apache-tomcat\bin中的catalina.bat中加入 set JAVA_OPTS=%JAVA_OPTS% -javaagent:%CATALINA_HOME%\lib\sizeof.jar 3.项目中也引入C:\apache-tomcat\lib中的sizeof.jar 包
  • 打赏
  • 举报
回复
按楼上的方法试试
liuym89 2016-08-29
  • 打赏
  • 举报
回复
可以的


青耕寐鱼 2016-06-04
  • 打赏
  • 举报
回复
引用 2 楼 qq_15915835 的回复:
tomcat和直接common运行。本质是一样的,都是启动了一个jvm
我知道是启动了一个JVM 但是还是出错了
青耕寐鱼 2016-06-04
  • 打赏
  • 举报
回复
引用 1 楼 qq_15915835 的回复:
这肯定是你agnet包的问题
具体点行吗? 那怎么解决呢?
青耕寐鱼 2016-06-04
  • 打赏
  • 举报
回复
引用 3 楼 qq_15915835 的回复:
你可用github上的pinpoint这个项目
能给个链接吗?好多呀
qq_15915835 2016-06-04
  • 打赏
  • 举报
回复
你可用github上的pinpoint这个项目
qq_15915835 2016-06-04
  • 打赏
  • 举报
回复
tomcat和直接common运行。本质是一样的,都是启动了一个jvm
qq_15915835 2016-06-04
  • 打赏
  • 举报
回复
这肯定是你agnet包的问题

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧