配置Intellij IDEA以查看tools.jar源码

1. 絮絮叨叨

  • 学习JCTree时发现,IDEA中展示的是反编译后的代码,并非像其他的JDK类一样展示.java文件
  • 而之前学习Java容器类时,有源码注释的加持,学习起来那叫一个如虎添翼 😘
  • 因此,还是希望IDEA中能展示tools.jar的源码,帮助自己学习JCTree

2. 弯弯绕绕,都失败

2.1 模仿rt.jar源码阅读

  • 网上查找时,找到了一篇文章:idea查看 rt.jar源码
  • 介绍了如何下载jdk源码,并将源码与IDEA绑定,从而能成功查看rt.jar中类的源码
  • 自己也按照文章中介绍的方法,下载了好几分钟的、几十MB的zip文件,并导入到IDEA中
  • 最后,发现JCTree类还是不能以JCTree.java的形式在IDEA中展示
  • 后来,根据JCTree位于com.sun.tools.javac.tree包中,仔细看了一下:hg.openjdk.java.net网站的src/share/classes/sun/tools/javac目录下,好像都没有tree目录
  • 没有JCTree的源码无法正常导入IDEA,那就能说得过去了

2.2 maven下载source的方法

  • 后来,IDEA中有如下提示,也尝试过Choose Source,但是毫无用处

  • 网上搜索对应的关键字,找到了博客IntelliJ IDEA 2020.3 :decompiled.class file bytecode version:52.0(java 8)解决问题

  • 在自己的maven项目中,加上了tools.jar的引用,然后通过右侧的Maven选项卡进行tools.jar的源码下载

    <dependency>
        <groupId>com.sun</groupId>
        <artifactId>tools</artifactId>
        <version>1.8</version>
        <scope>system</scope>
        <systemPath>${java.home}/../lib/tools.jar</systemPath>
    </dependency>
    
  • 最后,仍然没有解决问题

3. 终极解决办法

  • 既然hg.openjdk.java.net网站能下载到源码,那是不是也能在其他的网站下载到tools.jar的源码呢?
  • 搜索关键字jctree.java jdk 8,最后搜索结果的第一条就指向了hg.openjdk.java.net网站的另一个jdk源码目录
  • 点击进入后,层层网上递推,进入了确定了源码的根目录:/ jdk8 / langtools
  • 按照idea查看 rt.jar源码博客中讲述的方法,将源代码绑定到IDEA中
  • 发现IDEA中的JCTree.class自动变成了JCTree.java,开心得想当场转圈圈~ 💃
  • 毕竟很简单的一个问题,结果都这么曲折 😭
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值