文章目录
1. 前提介绍
bootchart 在平台上获取bootchart.tgz之后需要pc端工具解析:
- 源码编译为bootchart.jar 解析;
- build完成的bootchart.jar即在:https://download.csdn.net/download/xiaoqiaoq0/12520948
- Linux 系统下直接安装bootchart工具使用;
这里我采用的是bootchart.jar的方式,记录在过程中遇到了一些问题:
2. 获取bootchart 源码
bootchart官网好久没有更新了:
download界面并没有找到下载链接;
通过搜索:bootchart-0.9.tar.bz2 找到真正的下载网站
3. build
build 本身并不复杂:
- cd /bootchart-0.9
- ant
需要注意jdk版本,本人 pc端 JDK版本安装到了12,导致build出来的bootchart.jar无法使用!!!
3.1 确认JDK版本以及安装路径:
- /usr/libexec/java_home -V
3.2 下载安装 JDK 1.8
从官网下载JDK 1.8安装文件,一路点下去安装完成,然后配置环境变量:
vim ~/.bash_profile
添加:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
本以为找到了问题所在,没想到:
玩java比较少,仔细研究了下发现,难道是这里配置不同导致build 和run使用的JDK版本不同?
经过一系列验证发现想多了,仅仅是因为class文件中间文件没有删除干净,所以虽然修改为jdk1.8之后build jar包成功了,但是对应Main.class还是老版本的;
ps:通过 javap -verbose Main,class 可以看到该class的版本号;
3.3 验证上述错误
- JDK环境配置为12,build 完成通过 javap -verbose Main,class 确认build 版本:竟然是56;
- JDK环境配置为1.8,在之前环境的基础上ant编译完成,查看Main.class的build时间和版本,果然不一致;
说明: - JDK12 build 出来version为56,且可以在此环境下运行;
- 切换JDK版本后直接ant不会覆盖中间class文件,只是重新生成了jar包,需要手动删除Main.class;
- 后续追加:这里可以直接用ant clean 清除生成的文件,重新编译即可;
留下一个未解之谜:最开始的Main.class 中的57是哪里来的!!!!
- 后续追加:这里可以直接用ant clean 清除生成的文件,重新编译即可;
3.4 重新安装并编译
简单记录过程
- 下载安装JDK 1.8环境;
- 配置环境变量;
- 解压 bootchart源码
- ant 编译
- 取出bootchart.jar
4. 终于使用
环境配置为JDK 12和JDK 1.8 都可以