linux 下编译openjdk_Linux环境OpenJDK源码下载和编译

  1. OpenJDK源码下载

OpenJDK源码的下载方式我总结为主要有三种方式:

1)从官网下载zip包到本地,优点是直观方便,缺点是版本管理和更新不便;

官网地址

OpenJDK Mercurial Repositories​hg.openjdk.java.net

比如需要 下载jdk15的版本,则只需要点击截图中左侧的zip即可使用浏览器进行下载。

6a429e53789e4a8086c8803e16c10fb7.png

2)使用mercurial管理工具下载

45ae35ad915c1963d5406ee59a8d2fdc.png

openjdk官方是使用mercurial进行代码仓管理,因此可以用hg clone下载源码,首先进入terminal安装mercurial,然后同步代码到本地,比如jdk8:

hg clone http://hg.openjdk.java.net/jdk8/jdk8

同步完成后,使用代码仓的./get_source.sh脚本更新源码。

笔者在无代理的网络环境使用该方式总是超时失败,遂放弃。

3)使用git工具进行下载

openjdk在GitHub上也建立了代码仓,因此可以直接从官方仓库进行clone;

git clone git@github.com:openjdk/jdk.git
https://github.com/openjdk/jdk​github.com

同样由于网络问题同步失败。

好在国内码云上有同步的镜像仓库,解了燃眉之急。

git clone git@gitee.com:mirrors/openjdk.git
Gitee 极速下载/openjdk​gitee.com
300f05de6230f1ba046ef5b59f3ba257.png

2. openJDK源码编译

相比源代码下载,openjdk的编译倒简单一些,主要是:

1)configure

chmod a+x configure
./configure --with-boot-jdk ~/path/to/jdk

2) make

这个过程的主要问题在于第一步的configure的时候就要依赖旧版本jdk用于后续编译,比如从码云上同步下来的源码编译时需要依赖jdk 15 16 17,而Ubuntu18官方源提供的jdk最新版本只有11,因此只能曲线救国,基于jdk11环境和jdk13源码、jdk15源码逐步编译出新版本的jdk。如果当前已安装的jdk环境是满足源码版本N-1要求的,则只需要./configure即可。

configure: Potential Boot JDK found at /usr/lib/jvm/java-1.11.0-openjdk-amd64 is incorrect JDK version (openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.18.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.18.04, mixed mode, sharing)); ignoring
configure: (Your Boot JDK version must be one of: 15 16 17)
configure: Could not find a valid Boot JDK. OpenJDK distributions are available at http://jdk.java.net/.
configure: This might be fixed by explicitly setting --with-boot-jdk
configure: error: Cannot continue

以jdk12为例,基于jdk11环境进行configure和make之后,javac等二进制文件在build/linux-x86_64-server-release/jdk/bin目录;

2686684b188248067a3827ac71b94ef6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值