在只有JRE的环境下使用BTrace
2013-05-10 10:25
274 查看
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="${J***A_HOME}/lib/tools.jar"修改为指向上面拷贝的tools.jar;
4. 修改Btrace的脚本,脚本是在bin目录下面,根据不同的系统修改不同的btrace文件 - 修改java执行的那一行 (i.e. 就是以 $J***A_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="${J***A_HOME}/lib/tools.jar"修改为指向上面拷贝的tools.jar;
4. 修改Btrace的脚本,脚本是在bin目录下面,根据不同的系统修改不同的btrace文件 - 修改java执行的那一行 (i.e. 就是以 $J***A_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+inno setup加入JRE生成脱离Java环境的安装程序(图解)
- 使用exe4j将jar包生可执行的.exe文件(加入jre依赖环境),可在其他机器上运行
- 如何在生产环境使用Btrace进行调试
- [原创]jPagerBar1.2发布-jquery分页插件(一个适合Ajax+JSON+jQuery环境使用的多功能页码栏插件)(Demo、源文件下载已更新)
- Windows下的Memcache安装与Java部署(测试用,一般情况下会在linux环境下使用memcahe)
- 多线程环境下使用c++输出流和printf函数的区别
- .NET环境下水晶报表使用总结
- ubuntu 英文环境使用中文输入法
- Jar 打包 EXE文件,可以脱离java环境运行 Jsmooth的使用
- 使用jQuery for Asp.Net 我的开发环境配置
- windows下集成maven+eclipse开发环境一:安装使用maven私服nexus
- JNI环境变量——JNIEnv*的使用
- WIN7下使用iis搭建php环境(上)
- 如何在QT环境中使用openCV
- 使用maven profile配置运行不同环境和日志