学习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的源码下载
最后,仍然没有解决问题
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,开心得想当场转圈圈~
毕竟很简单的一个问题,结果都这么曲折