java编译器_深入理解Java语言编译器之环境搭建

我的前几篇博客写了如何编译OpenJDKRobin Lan:Ubuntu 18.04下编译OpenJDK14​zhuanlan.zhihu.comzhihu-card-default.svg

其实我最终目的是想研究一下OpenJDK里的Java编译功能和JIT编译功能。我们就先来研究一下Java编译器的实现。

还是那句话,要想深入了解代码的功能,除了能阅读代码,最好能运行起来,单步调试跟踪。为了实现这个目的我从OpenJDK14里把jdk.compiler的代码提取出来,整理成一个maven能独立编译运行的工程,只要用Intellij或是Eclipse就能运行起来,实现单步跟踪调试。我以后的学习都是在Intellij上,所以Eclipse没有相关的教程,如果有兴趣可以自行设置。

1、 首先你得有一个OpenJdk14的环境,可以在这里下载AdoptOpenJDK,Windows/Linux/Mac都可以,然后设置好环境变量。

2、安装Intellij IDEA,社区版本就行了。土豪请随便。

3、去下载我准备好的OpenJDK jdk.compiler的代码,从这里下载 github.

以上三步完成了,就可以直接打开项目了。

然后再java14compiler上点右键,选择Open Module Settings做把下设置:

Project --> Project SDK为你下载的AdoptOpenJDK 14

---> Project language level: 14(Preview)

Module --> Module SDK为你下载的AdoptOpenJDK 14

然后就可以编译,如果设置正确编译应该没有什么问题。

然后打开菜单Run --> Edit Configurations... 点左上角的+号,选择 Application会打开新设置页面,输入你想要的名字,设置项如下,然后保存。

Main class: com.lan.tools.javac.Main

Program arguments: icu/mianshi/openjdk/compiler/HelloWorld.java icu/mianshi/openjdk/compiler/MyMath.java

Working directory: 你的保存这个项目的路径+test 我的是(D:\github\java14compiler\test)

还是上传一张图吧:

然后到 src/main/java/com/lan/tools/javac下面把Main.java打开,在第43行设置上断点,然后点左侧的小绿三角形,然后选择 Debug 'Main.main()'就可以开始调试了,你可以单步跟踪进去,我们就先不跟踪了,按F9直接让它过了。它会在 java14compiler/test/icu/mianshi/openjdk/compiler/目录下生成两个class文件:HelloWorld.class, MyMath.class都是由它对应的源码生成的。

我们来验证一下生成的class文件对不对。打开你的终端 cd到 java14compiler/test目录下,然后执行 java icu.mianshi.openjdk.compiler.HelloWorld,如题出现 10+2=12就对了。

这里要注意你的java必须是14版本,否则会提示版本过低的问题。

好了,环境准备工作就到这里了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值