系统环境
Windows 版本号: Win10 1709 Ubuntu 版本号:Ubuntu 16.04.4 LTS
编译步骤
-
安装相关依赖
sudo apt update sudo apt install build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev ccache gawk m4 libasound2-dev libxrender-dev xorg-dev xutils-dev binutils libmotif-dev ant
安装时间过长的话请自行更换对应版本的国内源
-
下载 OpenJDK 8 源代码
安装 mercurialsudo apt-get install mercurial
下载源代码
hg clone http://hg.openjdk.java.net/jdk8/jdk8
更新代码
sh ./get_source.sh
这里网络不好的朋友可能要多试几次了.也可以自行下载源码,不使用mercurial,体验可能会更好一点.
-
下载Bootstrap JDK
一般选择落后一个大版本的JDK作为Bootstrap JDK.这里安装了OpenJDK 7.sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-7-jdk
安装完成之后请确认一下现在环境中的JAVA版本
java -version
-
编译OpenJDK 8
sh ./configure
这里可能会提示缺少一些依赖,apt安装就可以了.输出如下:
最后开始编译make all
编译完成
问题处理
-
OS版本不支持
This OS is not supported: Linux 4.4.0-43-Microsoft #1-Microsoft x86_64 x86_64 x86_64 GNU/Linux
解决办法:
修改文件 ./hotspot/make/linux/Makefile 修改 SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 为 SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3% 4%
-
参数不兼容
recipe for target 'ad_stuff' Failed
解决办法:
修改文件 ./hotspot/make/linux/makefiles/adjust-mflags.sh 删除第67行: s/-\([^][^]*\)j/-\1-j/