Ubuntu上的OpenJDK8编译流程

最近因为工作需要编译了openjdk-8,在这里记录一下编译流程和遇到的问题。

本次编译了amd64和arm64两个版本。

目录

amd64

安装依赖

编译

arm64

参考内容


amd64

环境:ubuntu2004

编译的代码是openjdk-8u41-b04-linux-x64-14_jan_2020

cd openjdk

./configure

根据configure的提示安装编译依赖,需要安装jdk7或者jdk8作为boot jdk

安装依赖

我这里选择了安装java7,下载地址在这里

tar -xzf *.gz
#创建新的文件夹
mkdir /usr/lib/jvm

mv jdk1.7.0_80 /usr/lib/jvm
#修改文件夹名称
mv /usr/lib/jvm/jdk1.7.0_80 /usr/lib/jvm/java-7-sun

sudo vim ~/.bashrc
#在文件末尾写入以下内容
export JAVA_HOME=/usr/lib/jvm/java-7-sun  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

然后执行以下命令 

source ~/.bashrc

之后在任意终端输入java -version,如果能正常显示以下内容说明安装成功。

然后安装以下依赖:

sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libasound2-dev

 安装完成后再次执行configure,如果终端输出如下内容说明执行成功

编译

需要将安装gcc4并修改部分编译文件

sudo vim /etc/apt/sources.list
# 添加两行数据到最后:
# # for gcc 4.* g++ 4.*
# deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
# deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

#安装gcc4
sudo apt-get install g++-4.9
sudo rm g++ && sudo ln -s g++-4.9 g++
sudo rm gcc && sudo ln -s gcc-4.9 gcc 
sudo rm gcc-ar && sudo ln -s gcc-ar-4.9 gcc-ar 
sudo rm gcc-nm && sudo ln -s gcc-nm-4.9 gcc-nm 
sudo rm gcc-ranlib && sudo ln -s gcc-ranlib-4.9 gcc-ranlib 
sudo rm gcov && sudo ln -s gcov-4.9 gcov  
 
vim ./hotspot/make/linux/Makefile
#修改内容如下:
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4% 5%
vim ./hotspot/make/linux/makefiles/gcc.make
# 修改源代码如下:
208 # WARNINGS_ARE_ERRORS = -Werror
209 WARNINGS_ARE_ERRORS = -Wno-all

修改完成后进行make,如果make出错,重新执行configure文件再进行make。

编译成功会有如下显示:

 编译完成的文件都在build目录下,我们执行一下编译的java测试一下。

注意:java7查看版本的指令是java -version,而不是java --version,如果执行后一个命令,java会有如下报错。

补充:

刚刚的编译流程没有使用任何参数,因此显示的java版本是1.8.0-internal。

java -version输出的参数都是可以修改的。

./configure --with-milestone=fcs --with-update-version=41 --with-build-number=b04

我们在执行configure的时候加上参数,再进行make,java -version的内容就可以改变。

版本的最后一行貌似也是可以修改的,但是我没有找到修改方法。

知道的朋友方便的话可以补充在评论区嘛?非常感谢!

arm64

arm参考别人的方案使用了飞腾ARM,麒麟LINUX。

openjdk原生是只支持amd64的,想在arm上编译需要修改编译文件。

我们这里直接用别人修改好的,在这里下载。

安装依赖的部分同amd64,然后直接make即可,不需要安装gcc4。

参考内容

OpenJdk8 编译流程

java -version的秘密

LINUX上编译ARM(AARCH)版本的OpenJDK8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值