前言:建议尽量在Linux或者MacOS上构建OpenJDK,这两个系统在准备构建工具链和依赖项上比Windows上容易的多。此次我在VMware workstation pro 15虚拟机中安装Ubuntu 18.04 LTS为平台构建。官方文档要求编译OpenJDK至少2~4GB的内存空间,至少6~8GB的空闲磁盘空间。本人建议虚拟机分配至少30GB磁盘空间。因为我编译完JDK和构建编译环境还有安装CLion编辑器已经用了25GB磁盘空间了。另外编译比较耗时,本人虚拟机配置8线程16GB内存编译完成用了四十分钟。读者可根据自己的硬件配置虚拟机。
https://hg.openjdk.java.net/jdk/jdk12
1.第一步进入网站,点击左遍菜单中的“Browse",第二部点击"zip",此时默认代码下载到/home/user/Downloads/目录下面。
2.执行解压命令
tar zxvf jdk12-06222165c35f
1.安装GCC命令
sudo apt-get install build-essential
2.安装若干第三方库
sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf
注意:编译大版本号为N的JDK我们还需要令外准备一个大版本号至少为N-1的已经编译好的编译器可用的JDK。编译OpenJDK12时必须使用JDK11及之后的版本。
3.安装OpenJDK11
sudo apt-get install openjdk-11-jdk
1.编译FastDebug版 仅含Server模式的HotSpot虚拟机命令为:(进入/home/user/Downloads/jdk12-06222165c35f目录下执行)
bash configure --enable-debug --with-jvm-variants=server
如果编译工程中工具链或依赖项有缺失,执行命令后会得到明确提示,并且会给出该依赖的安装命令。安装过程中可能会遇到
"sudo apt-get install libfontconfig-dev"的命令,复制它回车,再把”bash configure --enable-debug --with-jvm-variants=server“命令重新执行一遍。
注:编译比较耗时,本人虚拟机配置8线程16GB内存编译完成用了四十分钟。
编译完成后进入OpenJDK源码的"build/"配置下的"/jdk"就是编译后的完整结果了。
2.为编译好的OpenJDK12配置环境变量
sudo vi etc/profile
在profile文件末尾加上 注:export JAVA_HOME=/home/kai/.....中的kai是我的计算机用户名,读之根据自己的用户名更改
export JAVA_HOME=/home/kai/Downloads/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
保存退出。
执行命令使之生效
source profile
3.在/home/kai/Downloads/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk目录下执行以下以下命令,可查看编译好的JDK版本。
./java -version
1.去JB公司官网下载CLion,此时默认代码下载到/home/user/Downloads/目录下面。
https://www.jetbrains.com/clion/download/#section=linux
2.执行解压命令
tar zxvf CLion-2019.3.2.tar.gz
3.在/home/kai/Downloads/jdk12-06222165c35f目录下建立CMakeLists.txt文件
cd home/kai/Downloads/jdk12-06222165c35f
vi CMakeLists.txt
粘贴
cmake_minimum_required(VERSION 3.15.3)
project(jdk12-06222165c35f)
file(GLOB_RECURSE SOURCE_FILES "*.cpp" "*.hpp" "*.c" "*.h")
add_executable(jdk12-06222165c35f ${SOURCE_FILES})
保存退出。
4.打开CLion导入OpenJDK源码
cd home/kai/Downloads/clion-2019.3.2/bin
./clion.sh
选择"New Cmake Projece from Sources"
点击ok,进入主页面。
在Run/Debug Configurations中增加一个CMake Appliaction Executable选择的是/home/kai/Downloads/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk/bin/java ,运行参数-version,再把Before lunch里面的Build去掉,就可以调试了。
配置完成后HotSpot启动执行入口是java.c的JavaMain()方法,读者可以断点调试。
至此 ,成功!