最近在读《深入理解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 项目

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
IntelliJ IDEA 打开 OpenJDK 8 Javac 源码

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

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

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

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
源码解压后,这个目录下的文件,全部复制过来。

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
复制成功后,重新打开 IDEA。(之前,我就是直接复制到IDEA中,IDEA会自动修改一些文件包路径信息,导致我一直报错。

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码

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

第四步,测试

编写测试类。

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码

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

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码
运行后,同目录下多了一个 class 文件,即测试成功。

IntelliJ IDEA 打开 OpenJDK 8 Javac 源码

参考

《深入理解Java虚拟机》

https://juejin.im/post/6844903882166894605

相关文章:

  • 2022-12-23
  • 2021-11-07
  • 2021-06-12
  • 2021-08-12
  • 2021-05-04
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-26
  • 2022-12-23
  • 2021-09-29
  • 2022-12-23
  • 2021-09-21
  • 2021-05-22
相关资源
相似解决方案