Ubuntu14编译OpenJDK9

一、说明

本文的所有操作都是在JVM虚拟机学习之(1)使用 Ubuntu 14.04 编译 OpenJDK 9的基础上完成

最近在看《深入理解JVM虚拟机》这本书,文中第一章需要配置虚拟机和编译OpenJDK,因为书中的版本年代久远,有些资源很难找到,很难复现书中的内容,达到一模一样的效果。网上有很多用Ubuntu16来编译OpenJDK8的文章供参考,本身我的常用linux系统也是Ubuntu16,但是亲自试过没有成功的,总是这里一点问题,那里一个error。之后总算看到上面链接的文章,亲测可行,但是文章内容省略过多,需要结合很多其他的步骤才能完成编译,特意来写一篇博客记录一下.Ubuntu14就当作专门学习java虚拟机的系统了.

  • 系统: Ubuntu 14.04
  • 编译JDK: OpenJDK 9
  • 运行JDK(BootStrap JDK): jdk-8u201-linux-x64.tar.gz

所需资源

  1. Ubuntu 14.04 运行的操作系统
  2. OpenJDK 9 用来编译的JDK
  3. jdk-8u201-linux-x64.tar.gz 用来做运行环境的JDK
  4. eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz 用来调试的工具
  5. make-4.1.tar.bz2 用来升级操作系统make命令的版本

链接:https://pan.baidu.com/s/1IodC_cOQqHYe9fV_mkDPig&shfl=sharepset
提取码:pftm

二、操作步骤

因为要编译OpenJDK9,这个版本是在jdk8的基础上编译的,并且要需要gcc和g++(Ubuntu默认安装).所以下面的主要步骤是先安装jdk8的java环境,然后再对jdk9源码进行编译

1.系统安装

Ubuntu14.04在VM上是傻瓜式安装,安装完设置sudo passwd root设置管理员密码,还可以设置清华源

  • 最好给虚拟机打个快照保存一下

2.安装JDK

参考自ubuntu14.04 安装jdk 的两种方式

把jdk-8u201…tar.gz放到任意文件夹下,在该文件夹下操作

2.1创建目录
sudo mkdir /usr/lib/jvm
2.2解压到该目录
sudo tar -zxvf jdk-8u201-linux-x64.tar.gz
2.3修改环境变量
sudo vim ~/.bashrc
2.4文件末尾追加
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_201  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  
2.5退出,使环境变量马上生效
source ~/.bashrc
2.6设置系统默认jdk版本
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_201/bin/java 300  
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_201/bin/javac 300  
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0_201/bin/jar 300   
sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk1.8.0_201/bin/javah 300   
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.8.0_201/bin/javap 300

然后执行:

sudo update-alternatives --config java

若是初次安装jdk,会有下面的提示

There is only one alternative in link group java (providing /usr/bin/java):
/usr/lib/jvm/jdk1.8.0_201/bin/java

否者,选择合适的jdk

2.5 测试jdk
#java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

3.安装编译所需以来的软件

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

4. 安装make

官方文档建议使用4.0以上版本编译,原文用的使make4.0,我自己安装的时候报错,没找到某个头文件,以为是gccg++版本低了,升级到了gcc-4.9和g++4.9.但是结果还是失败,最终只能使用make4.1

网盘中保存了make-4.1.tar.bz2文件,参考文章Ubuntu更新make

1、解压make源码到随便一个目录。
2、进入目录执行./configuration
3、执行./build.sh
4、删除已安装的make:sudo apt-get remove make
5、执行./make install
6、替换make文件:sudo cp make /usr/bin/make

5.编译OpenJDK

# 解压
unzip openjdk-9_src.zip
cd openjdk
# 使用configure 命令进行依赖检测
bash configure --disable-warnings-as-errors --with-debug-level=slowdebug --with-native-debug-symbols=internal
# 使用make编译
make images

经过漫长的等待,终于完成

下面就来测试一下

cd build/linux-x86_64-normal-server-slowdebug/jdk/bin
# 输入 ./java -version

xxx@ubuntu:~/Desktop/openjdk/build/linux-x86_64-normal-server-slowdebug/jdk/bin$ ./java --version
openjdk 9-internal
OpenJDK Runtime Environment (slowdebug build 9-internal+0-adhoc.hong.openjdk)
OpenJDK 64-Bit Server VM (slowdebug build 9-internal+0-adhoc.hong.openjdk, mixed mode)

三、调试

Hotspot调试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值