在只有JRE的环境下使用BTrace
2013-09-08 19:40
387 查看
Btrace是一个基于Java且可以实现对字节码的动态跟踪的工具,它能在不改动当前程序的情况下,运行时的去监控Java程序的执行状况,例如可以做到内存状况的监控、方法调用的监控等等。但是它只能够运行于JDK6+以上的版本,因为某些原因,如在JDK5中JTWTI(Java Virtual Machine Toolkit Interface:Java 虚拟机工具接口,可以参看这篇文章:http://www.ibm.com/developerworks/cn/java/j-lo-jvmti/),只支持基于本地库(Native
library)的代理,而不支持于基于某个jar的代理。
它的使用非常简单,最简单的就是将写好的java源码,直接放到它的bin目录去执行就可以了,它有详细的UserGuide:http://kenai.com/projects/btrace/pages/UserGuide,也可以参看一些别人写的实例,如:http://rdc.taobao.com/team/jm/archives/509。
但是在某些情况下,我们的运行环境中没有JDK,只是JRE,我们就需要对Btrace进行一些修改才可以正常使用了。
1. 从JDK中将tools.jar拷贝到一个合适的目录 (如. /tmp);
2. 从JDK中将libattach.so也拷贝到上面的目录中(Ex. /tmp) - 这个文件,要根据当前运行系统的操作系统位数进行选择,如32位或64位,我们就需要从合适的JDK中进行选择文件;
3. 修改Btrace的脚本,脚本是在bin目录下面,根据不同的系统修改不同的btrace文件 - 将TOOLS_JAR="${JAVA_HOME}/lib/tools.jar"修改为指向上面拷贝的tools.jar;
4. 修改Btrace的脚本,脚本是在bin目录下面,根据不同的系统修改不同的btrace文件 - 修改java执行的那一行 (i.e. 就是以 $JAVA_HOME}/bin/java 开头的行) ,在其中加入参数-Djava.library.path=/tmp,/tmp目录就是我们上面存放libattach.so文件地方;
5. 照原来的执行方式执行即可。
以上是翻译于:https://kenai.com/projects/btrace/forums/tips-tricks/topics/13119-Using-BTrace-with-JRE-as-a-target-VM
library)的代理,而不支持于基于某个jar的代理。
它的使用非常简单,最简单的就是将写好的java源码,直接放到它的bin目录去执行就可以了,它有详细的UserGuide:http://kenai.com/projects/btrace/pages/UserGuide,也可以参看一些别人写的实例,如:http://rdc.taobao.com/team/jm/archives/509。
但是在某些情况下,我们的运行环境中没有JDK,只是JRE,我们就需要对Btrace进行一些修改才可以正常使用了。
1. 从JDK中将tools.jar拷贝到一个合适的目录 (如. /tmp);
2. 从JDK中将libattach.so也拷贝到上面的目录中(Ex. /tmp) - 这个文件,要根据当前运行系统的操作系统位数进行选择,如32位或64位,我们就需要从合适的JDK中进行选择文件;
3. 修改Btrace的脚本,脚本是在bin目录下面,根据不同的系统修改不同的btrace文件 - 将TOOLS_JAR="${JAVA_HOME}/lib/tools.jar"修改为指向上面拷贝的tools.jar;
4. 修改Btrace的脚本,脚本是在bin目录下面,根据不同的系统修改不同的btrace文件 - 修改java执行的那一行 (i.e. 就是以 $JAVA_HOME}/bin/java 开头的行) ,在其中加入参数-Djava.library.path=/tmp,/tmp目录就是我们上面存放libattach.so文件地方;
5. 照原来的执行方式执行即可。
以上是翻译于:https://kenai.com/projects/btrace/forums/tips-tricks/topics/13119-Using-BTrace-with-JRE-as-a-target-VM
相关文章推荐
- 在只有JRE的环境下使用BTrace
- 如何在生产环境使用Btrace进行调试
- windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。
- 在Sun Solaris JRE/JDK 环境下使用 DB2 JCC驱动程序时碰到"Encoding not supported"错误怎么办
- 如何使用JSmooth软件将java文件打包发布成exe文件,在没有jre环境的机子上运行(亲测有用)
- 使用exe4j将jar包生可执行的.exe文件(加入jre依赖环境),可在其他机器上运行
- 使用exe4j+inno setup加入JRE生成脱离Java环境的安装程序(图解)
- 如何在生产环境使用Btrace进行调试
- Java学习之路0714(一)(markDown标签的简单使用,Java环境配置、Java基本数据类型))
- 在linux(cent OS)上安装java的运行环境(jre)
- Python小白研究之交互环境使用
- Android学习笔记---Android概念,开发环境的搭建,前景分析,模拟器的使用....
- 嵌入式 win7下配置开发环境和VS2010联合使用
- zabbix分布式环境使用
- c语言中使用环境变量的技巧
- 【开发环境】芯圣烧录工具HC-PM18 4.0的使用
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,求这个数字。(使用位运算)
- 如何搭建和使用 Xcode 开发环境
- 使用Struts2和jQuery EasyUI实现简单CRUD系统(四)——基础环境搭建
- HBase伪分布式环境搭建及命令行使用