BTrace 是一款java診斷工具.
今天使用的時候碰到幾個坑,先記錄一下.
下載下來以后直接運(yùn)行報錯
root@iZ2ze89756yjbvq7le6obdZ:~/btrace-bin-1.3.11/bin# ./btrace 6582 /root/testBtrace.java
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/source/util/TaskListener
at com.sun.btrace.client.Client.compile(Client.java:181)
at com.sun.btrace.client.Client.compile(Client.java:164)
at com.sun.btrace.client.Main.main(Main.java:189)
Caused by: java.lang.ClassNotFoundException: com.sun.source.util.TaskListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more
百度半天才發(fā)現(xiàn)是因為沒有配置JAVA_HOME 環(huán)境變量導(dǎo)致的.
第二個錯
root@iZ2ze89756yjbvq7le6obdZ:~# btrace-bin-1.3.11/bin/btrace 6582 HelloWorld.java
Port 2020 unavailable.
端口被占用,修改端口即可.
btrace-bin-1.3.11/bin/btrace -p 2022 15516 HelloWorld.java
第三個錯
root@iZ2ze89756yjbvq7le6obdZ:~# btrace-bin-1.3.11/bin/btrace -p 2021 6582 HelloWorld.java btrace WARNING: Invalid 'libs' configuration [null]. Path '/root/btrace-bin-1.3.11/build/btrace-libs' does not exist.
默認(rèn)下載下來的btrace文件夾中沒有btrace-lib,在btrace-bin-1.3.11/build下新建一個即可,把btrace-bin-1.3.11/build下的jar包也拷過去就好了.
最后的成果:
root@iZ2ze89756yjbvq7le6obdZ:~# btrace-bin-1.3.11/bin/btrace -p 2022 15946 HelloWorld.java
search start!
search start!