Ubuntu下编译openjdk11

前言

我的另一篇文章:Ubuntu下编译openjdk8 已经编译了openjdk8的版本,现在需要用到openjdk11的HotspotJVM,所以就编译一下openjdk11,把不同的部分记录下来,openjdk11的准备部分就不在赘述了,直接进入编译环节,需要准备环境的看我的编译openjdk8的文章,先把需要安装的工具安装了。

1.笔者环境

源码:openjdk11,大家可以官网下载,也可以到我的github下载,下载地址

系统:Ubuntu19.04

引导jdk:oraclejdk10,下载地址,下载后解压,然后配置环境变量,可以不配置,但有的环境会出问题。

2.编译过程

编译openjdk8的时候是在Ubuntu18.04,openjdk11开始也在Ubuntu18.04,但是出错半天没有解决了,所以又在Ubuntu19.04全新的环境中编译。

openjdk11,12的编译需要用到jre/lib,所以在引导jdk的目录下创建jre目录,然后把lib文件夹拷到jre目录。

2.1配置编译环境:

bash ./configure --with-target-bits=64 --with-boot-jdk=/opt/jdk/jdk-11.0.4/ --with-debug-level=slowdebug --with-native-debug-symbols=external --disable-warnings-as-errors

执行后出错:

image.png

就是说我的系统环境没有安装autoconf,sudo apt-get install autoconf 安装后就可以继续了,不过又出了个错:

image.png

error:Could not find fontconfig,就是说找不到fontconfig,安装就是了,按照打印的错误提示安装:sudo apt-get install libfontconfig1-dev,安装完再重新配置,就可以成功了。

image.png

2.2开始编译:

make all

编译出错了:

image.png

这个错是GCC版本过高导致的,应该是一个jdk的bug,感兴趣的可以看下openjdk的bug提交记录:https://bugs.openjdk.java.net/browse/JDK-8214444

gcc --version查看一下gcc的版本:

image.png

确实有点高,官方写的要求GCC版本在4.x到7.x,所以8.3的GCC版本有点高,需要降低一下GCC的版本:

我是把gcc和g++降到gcc/g++6的版本,就可以编译通过了

  1. 下载gcc/g++ 6

sudo apt-get install -y gcc-6
sudo apt-get install -y g+±6

  1. 链接gcc/g++实现降级

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 gcc
sudo rm g++
sudo ln -s g+±6 g++

再编译就OK了,可以通过,不过有几个警告,没有太大影响,我编译openjdk12没有任何警告,很流畅,11就是有编译的不太流畅。
每个人的环境不一样,出的问题可能也不一样,有问题也欢迎大家留言,如果自己Google找不到的话。

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值