参考自:https://blog.csdn.net/bmw601055/article/details/77882699、https://blog.csdn.net/zzp448561636/article/details/82779686
原材料
- OS:Ubuntu16.04 LTS
- 被编译的JDK:openjdk8 百度云下载地址:链接:https://pan.baidu.com/s/1lfRjB6SmxZtTBb8vDIw3OA 提取码:fgy0
- Boot JDK(使用jdk7u80):百度云下载地址: 链接:https://pan.baidu.com/s/1dPAepJ86kFl876gpUgivMw 提取码:4yuw
步骤
- 将下载的 openjdk8(7z后缀) 解压后放置在一个目录之下,如我放置在 /home/cheng/myOpenJDK/ 之下
- 解压 7z 后缀压缩包的命令如下:
sudo apt-get install p7zip-full
7z x openjdk-8u40-src-b25-10_feb_2015.7z #x后面为你的压缩包所在路径
- 将从网盘下载下来的 Boot jdk 放置在一个目录里,如我放置在 ~/jdk/jdk7 (jdk7为原压缩包改名后的名字)。放置成功后即可,不需要配置JAVA_HOME以及CLASSPATH。如果之前系统上已经配置过JAVA_HOME和CLASSPATH,则需要命令 unset JAVA_HOME、unset CLASSPATH 使这两个参数暂时失效
- 使用以下命令安装所需依赖
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev
- 进入 openjdk8 的主目录,我这里是 /home/cheng/myOpenJDK/openjdk/ 。执行以下命令进行配置:(须填写Boot jdk的安装目录)
sudo bash configure --with-target-bits=64 --with-boot-jdk=/home/cheng/jdk/jdk7/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0
- 如果配置成功,则会显示如下信息:
- 接下来执行 sudo make all ZIP_DEBUGINFO_FILES=0 命令开始编译,若出现以下错误:
则使用命令 sudo gedit /home/cheng/myOpenJdk/openjdk/hotspot/make/linux/Makefile 修改该文件的 SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 该行,在该行末尾添加 4%. 如下:
- 经过以上修改,再使用命令 sudo make all ZIP_DEBUGINFO_FILES=0 进行编译。若编译成功,则出现如下界面:
- 若在编译过程中,出现以下错误,请不要慌张,这并没有太大问题(网上是这么说的,最后确实也是没太大问题):
- 查看刚才编译成功的openjdk版本。首先进入 openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin 目录,再执行命令 ./java -version。可得如下结果:
- 而查看 Boot jdk 的版本,显示如下:
至此,Openjdk8编译告一段落