极简,利用Docker仅两行命令就能下载和编译OpenJDK11

网友投稿 828 2022-11-05

极简,利用Docker仅两行命令就能-和编译OpenJDK11

极简,利用Docker仅两行命令就能-和编译OpenJDK11

欢迎访问我的GitHub

通常情况下,编译OpenJDK11源码构建新的JDK需要以下步骤: -OpenJDK11源码; 按自己需求修改OpenJDK11源码; 准备编译环境; 编译构建新的JDK; 现在利用Docker,可以将步骤简化如下: 执行一行命令,完成OpenJDK11源码-; 按自己需求修改OpenJDK11源码,这一步省不掉; 执行一行命令,将修改后的OpenJDK11源码构建为新的JDK; 可见除了自己修改OpenJDK源码这一步因人而异无法省略,其余步骤已经被大大简化,接下来就一起体验一下吧;

实战环境

操作系统:Ubuntu 16.04.5 LTS; Docker:18.06.1-ce; 强烈建议您为Docker配置好镜像加速(例如阿里云和DaoCloud),因为用到的Docker镜像文件较大,使用镜像加速对-速度提升明显;

实战步骤

今天实战的内容如下: 用一行命令,通过Docker把OpenJDK11源码-到本地; 按照自己的需求修改OpenJDK11源码; 用一行命令,通过DockerDocker编译构建OpenJDK11源码,生成新的JDK; 验证新的JDK; 接下来开始实战吧;

准备工作

在当前电脑准备一个空目录,例如我这里是 /usr/local/work/openjdksrc ,请确保该目录已经存在,且里面什么都没有;

-OpenJDK11源码

执行以下命令即可完成OpenJDK11源码-:

docker run \ --rm \ -it \ -v /usr/local/work/openjdksrc:/output \ bolingcavalry/openjdksrc11:0.0.2

注意: 命令中的/usr/local/work/openjdksrc就是之前新建的空文件夹; 由于源码包自身体积较大,因此-镜像是比较耗时的,请您耐心等待; 命令执行成功后,/usr/local/work/openjdksrc下面会出现一个名为jdk11文件夹,这里面就是OpenJDK11的源码;

修改OpenJDK11源码

接下来是您根据自己的需要去修改OpenJDK源码,举个例子,我修改的文件位于以下位置:

jdk11/src/java.base/share/classes/java/lang/VersionProps.java.template

打开此文件,找到方法print(boolean err, boolean newln),该方法位于文件的尾部,在此方法的最后面添加一行代码,如下图红框所示,新增代码的作用是让"java -version"命令多打印一行内容:

编译OpenJDK11源码

执行以下命令即可完成OpenJDK11源码编译和构建:

docker run --rm \ -it \ -v /usr/local/work/openjdksrc:/src \ bolingcavalry/buildopenjdk11:0.0.2

编译构建的速度和电脑硬件有关,构建完成后,打开文件jdk11/build/linux-x86_64-normal-server-release/build.log,在文件尾部可以看到如下信息:

Creating support/modules_libs/jdk.security.auth/libjaas.so from 1 file(s) Compiling 16 files for jdk.security.jgss Compiling 8 files for jdk.unsupported.desktop Compiling 94 files for jdk.xml.dom Compiling 14 files for jdk.zipfs Warning: No mercurial configuration present and no .src-rev Compiling 4 files for BUILD_JIGSAW_TOOLS ----- Build times ------- Start 2018-10-26 03:19:45 End 2018-10-26 04:02:08 00:42:23 TOTAL ------------------------- Finished building target 'default (exploded-image)' in configuration 'linux-x86_64-normal-server-release'

验证新的JDK

进入目录jdk11/build/linux-x86_64-normal-server-release/jdk/bin; 执行命令./java -version,可以看到下图信息,红框中就是我们修改的效果:

至此,OpenJDK11源码的-、修改、编译就这么完成了,是不是很简单呢?如果您有兴趣了解如何做到这么简单的操作,请关注以下两篇文章,它们分别揭示了如何制作-源码的镜像和编译源码的镜像: 《制作Docker镜像,用来-OpenJDK11源码》 《制作Docker镜像,用来编译OpenJDK11源码》

欢迎关注51CTO博客:程序员欣宸

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:fast.ai深度学习库,课程和教程
下一篇:一个动态,响应式的Laravel Livewire表格组件,拥有搜索、排序、复选框和分页功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~