bootchart.jar 编译过程

1. 前提介绍

bootchart 在平台上获取bootchart.tgz之后需要pc端工具解析:

  1. 源码编译为bootchart.jar 解析;
  2. build完成的bootchart.jar即在:https://download.csdn.net/download/xiaoqiaoq0/12520948
  3. 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
    JDK安装目录

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 验证上述错误

  1. JDK环境配置为12,build 完成通过 javap -verbose Main,class 确认build 版本:竟然是56
  2. JDK环境配置为1.8,在之前环境的基础上ant编译完成,查看Main.class的build时间和版本,果然不一致;
    说明:
  3. JDK12 build 出来version为56,且可以在此环境下运行;
  4. 切换JDK版本后直接ant不会覆盖中间class文件,只是重新生成了jar包,需要手动删除Main.class;
    • 后续追加:这里可以直接用ant clean 清除生成的文件,重新编译即可;
      在这里插入图片描述
      留下一个未解之谜:最开始的Main.class 中的57是哪里来的!!!!

3.4 重新安装并编译

简单记录过程

  1. 下载安装JDK 1.8环境;
  2. 配置环境变量;
  3. 解压 bootchart源码
  4. ant 编译
  5. 取出bootchart.jar

4. 终于使用

环境配置为JDK 12和JDK 1.8 都可以
使用成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值