JVM | OpenJDK11 源码编译

本贴最后更新于 1772 天前,其中的信息可能已经时移俗易

开头说两句

Java 基础 Demo 站: https://www.javastudy.cloud
Java 中高级开发博客: https://www.lixiang.red
Java 学习公众号: Java 技术大本营
java_subscribe

下载源码

源码下载地址: https://hg.openjdk.java.net/jdk-updates/jdk11u

直接选左边的 zip 下载压缩包

jUA5xl

安装依赖

w0XvyV

因为源码版本不同, 需要的依赖和步骤也不同, 所以强烈建议打开 building.html 来看一下

基本上是从 building.html#boot-jdk-requirements 这里开始准备一些基础条件,按上面的命令,把需要的依赖都安装好

必须要准备的:

至少低一个版本的 jdk

这里我们的源码是 jdk11, 原则上来说, 我们要用 10 做 bootjdk,但是通过调试日志输出, 我们可以选 10 和 11 中的一个

QSnUZD

进行 Running Configure

这里为了调试, 我们选用了调试信息最多的, slowdebug, 然后添加了 boot-jdk 的参数,还有一个隐形的坑 --disable-warnings-as-errors 不然配置显示是成功的, make 的时候会因警告无法往下走

执行配置的命令:

bash configure --with-debug-level=slowdebug --with-boot-jdk=/Users/lixiang/soft/jdk-11.0.2.jdk/Contents/Home --disable-warnings-as-errors

当输出以下内容时, 就是配置成功

3PlVyH

make 构建

我们使用 make images 来进行构建 jdk 镜像, 其他选项如,hotspot, docs,test-image 等可参考上述 building.html 文档

看到输出这个时, 就是构建完成

KdLHyI

最后在 build 目录,可以看到自己构建的 jdk

GTuwwo

使用 Java -version 可以看到构建的版本信息

D48Kwy

总结

随着 jdk 版本的升级,新版本的构建越来越容易,推荐使用 Mac 或者 Linux 系统来进行构建。 Windows 的我曾经试了好久,,一直有各种错,实在进行不下去了...

  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • adlered 2

    OpenJdk => OpenJDK

    1 回复
  • xiaodaojava
    作者

    已修正, 感谢老哥

    1 回复
  • adlered 1

    客气了 huaji 再挑个刺,jdk -> JDK

    至少低一个版本的 jdk
    
    这里我们的源码是 jdk11, 原则上来说, 我们要用 10 做 bootjdk,但是通过调试日志输出, 我们可以选 10 和 11 中的一个
    
    最后在 build 目录,可以看到自己构建的 jdk
    
    随着 jdk 版本的升级,新版本的构建越来越容易,推荐使用 Mac 或者 Linux 系统来进行构建。 Windows 的我曾经试了好久,,一直有各种错,实在进行不下去了...
    
  • 想知道有多少人现在用 adoptopenjdk