编程语言爱好者

最简单的方式调试javac源码

2022-08-26  本文已影响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里的即可。

上一篇下一篇

猜你喜欢

热点阅读