最近在读《深入理解Java虚拟机》第三版,周志明著,第十章时,作者使用 Eclipse 编译了 Javac 的源码,但是我想用IntelliJ IDEA 编译一下平时使用的JDK 8 的 Javac 源码,测试一波,中途踩到了一些坑,一直没有办法编译,最后终于编译成功了,记录一下。

准备

  • IntelliJ IDEA
  • JDK 8
  • OpenJDK 源码

第一步、获取源码

官方下载。可以下载zip包,或者gz 都可以。下载后解压。
https://hg.openjdk.java.net/jdk8/jdk8/langtools/

也可以使用我已经处理好的。
https://github.com/huangyongliang/openjdk8/tree/master

第二步,IntelliJ IDEA 中新建一个空的 Java 项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到这里注意不要直接复制粘贴进去。

第三步,手动新建目录,将源码复制进去

这里先关闭 idea,在窗口新建目录和复制文件,再打开 idea 项目。

在这里插入图片描述
在这里插入图片描述
源码解压后,这个目录下的文件,全部复制过来。

在这里插入图片描述
在这里插入图片描述
复制成功后,重新打开 IDEA。(之前,我就是直接复制到IDEA中,IDEA会自动修改一些文件包路径信息,导致我一直报错。

在这里插入图片描述

打开后,直接运行Main方法,输出如下,就可以了。

第四步,测试

编写测试类。

在这里插入图片描述

将测试类路径(这里我使用的绝对路径),作为 Javac 的 Main 函数的参数,运行。

在这里插入图片描述
运行后,同目录下多了一个 class 文件,即测试成功。

在这里插入图片描述

参考

《深入理解Java虚拟机》

https://juejin.im/post/6844903882166894605

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐