美文网首页编程语言爱好者
最简单的方式调试javac源码

最简单的方式调试javac源码

作者: 李不言被占用了 | 来源:发表于2022-08-26 13:45 被阅读0次

    前言

    跟JVM不同,javac是用java语言编写的,所以想要调试javac源码是非常简单的。
    之前写过两篇文章:

    说明

    需要说明的是,本文讨论的是java版本是java8。
    在java8中,官方jdk是没有附带javac源码的。所以我们只能在openjdk中获取javac源码。

    1. 首先下载好openjdk8。

    2. 创建一个新的java工程。


      image.png
    3. 将javac的源码导入到工程中,只导入:com.sun.tools.javac.Main即可。

      image.png
      image.png
    4. 解决报错
      报错的原因是我们没有引入com.sun.tools.javac.Main的相关依赖,简单说就是classpath中没有tools.jar。

    当然如果我们把整个相关的源码引入的话,tools.jar是不需要的。道理是很浅显的,就是com.sun.tools.javac.Main依赖满足即可,怎么弄都可以。
    引入tools.jar:

    image.png
    image.png
    1. 运行
      执行main方法:
      image.png
      相当于直接在命令行执行javac,没有任何参数:
      image.png

    至此,javac的源码就运行起来了。

    编译HelloWorld

    1. 新建一个HelloJavac.java
      image.png

    可以看到HelloJavac目前是还没有编译的。

    1. 配置参数:


      image.png

    这里我配置的参数是:-d $ModuleFileDir$\target\classes $ModuleFileDir$\src\main\java\com\hello\HelloJavac.java 读者根据自己的路径自行更改,宏是从图红框里选的。

    1. 编译结果


      image.png

    更多

    如果你想给源码添加注释,那除了导入com.sun.tools.javac.Main以外,可以导入更多的类。不过我建议是需要哪个导入哪个,不用编译这么多,不注释的类就用tools.jar里的即可。

    相关文章

      网友评论

        本文标题:最简单的方式调试javac源码

        本文链接:https://www.haomeiwen.com/subject/lnrtnrtx.html