JVM虚拟机学习之(1)使用 Ubuntu 14.04 编译 OpenJDK 9
一 概念
我们平常用的 JDK 是已经编译好的,不能看到内部的运行,不同的平台JDK底层实现也有差异。编译 JDK 的目的是为了查看Java 虚拟机的内部运行,既要能看到源码,又需要运行源码。就像我们编写Java代码之后运行编译执行一样。因为 JDK 的实现有C、C++ 和 Java 的参与,C 的编译工具有gcc 和clang,Java部分需要被编译JDK的上一个版本作为环境。主流的操作系统也都可以编译,但是兼容性最好的是Ubuntu 14.04 。在编译版本的选择上因为老版本的JDK编译和现代有时间差,很可能有老坑没填,咱们也没能力填。所以我选择使用 OpenJDK 9.使用Oracle JDK 8 作为运行Java的环境。
-
系统:Ubuntu 14.04
-
编译JDK:OpenJDK 9
-
运行JDK(BootStrap JDK):jdk-8u201-linux-x64.tar.gz
二 所需资源
-
Ubuntu 14.04 运行的操作系统
-
OpenJDK 9 用来编译的JDK
-
jdk-8u201-linux-x64.tar.gz 用来做运行环境的JDK
-
eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz 用来调试的工具
-
make-4.0.tar.bz2 用来升级操作系统make命令的版本
所需资源已经放在网盘
链接:https://pan.baidu.com/s/1aj_-cxA_05HrhjxEZuAAKQ
提取码:jpla
三 操作步骤
1. 安装操作系统
1.1 安装请参考 https://blog.csdn.net/yonglingqin9031/article/details/80425076
1.2 配置源请参考 https://blog.csdn.net/qq_38427678/article/details/84570512
2. 安装 JDK
2.1 请参考 https://www.cnblogs.com/zsr0401/p/6279436.html
3. 安装编译所需依赖的软件
在 Bash(终端)中依次粘贴执行以下命令,如果安装失败,是源没有配置好
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
检测 make 命令的版本
sudo make -version
默认是3.8.3,官方文档建议使用 4.0 所以我们就安装4.0的,取出网盘中的 make-4.0.tar.bz2 文件,解压安装
请参考 https://blog.csdn.net/yaobao888/article/details/45568601
4. 使用configure 命令进行依赖检测
bash configure --disable-warnings-as-errors --with-debug-level=slowdebug --with-native-debug-symbols=internal
5. 使用make编译
make images
6. 将源码引入eclipse中
安装 eclipse 请参考 https://www.cnblogs.com/amanlikethis/p/3401370.html
引入到 eclipse 中请参考 https://blog.csdn.net/liji_xc/article/details/78649302