Windows使用WSL编译自己的JDK

Windows使用WSL编译自己的JDK

    • 一、获取源码
    • 二、构建编译环境
    • 三、进行编译
        • 验证编译结果
    • 四、配置环境变量
    • 五、使用CLion进行调试

参考资料:《深入理解java虚拟机》

笔者使用的操作系统为windows,但是windows编译自己的jdk还是比较麻烦的,所以我们就需要使用wsl构建一个ubuntu操作系统环境,然后编译。所幸构建ubuntu操作系统还是比较简单的,在微软商店搜索ubuntu,下载18版本即可。下载完成后打开,就可以看到ubuntu操作系统的命令行窗口了,使用cd命令进入/mnt文件夹,这个文件夹下的c文件夹对应C盘,d对应D盘,以此类推。

Windows使用WSL编译自己的JDK_第1张图片

一、获取源码

现在我们需要获取OpenJDK源码,激怒JDK12版本的仓库页面,点击左侧的“Browse”,进入jdk12的根目录,然后点击左边的“zip”即可下载当前版本打包好的源码,到本地直接解压即可。

这里强烈建议一定要仔细阅读源码中的doc/building.html,可以使用网页翻译功能也是能看懂的。

二、构建编译环境

打开ubuntu,依次执行下面的代码即可

工具 安装命令
GCC sudo apt-get install build-essential
FreeType sudo apt-get install libfreetype6-dev
CUPS sudo apt-get install libcups2-dev
X11 sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
ALSA sudo apt-get install libasound2-dev
libffi sudo apt-get install libffi-dev
Autoconf sudo apt-get install autoconf
jdk11 sudo apt-get install openjdk-11-jdk

三、进行编译

如编译FashDebug版、仅含Server模式的HotSpot虚拟机,命令应为:

bash configure --enable-debug --with-jvm-variants=server

注:此处如果带着调试、定制化需求去编译自己的OpenJDK,可以使用“bash configure --help”查询OpenJDK提供的编译参数,有兴趣可以自己尝试探索。

运行编译命令后:
Windows使用WSL编译自己的JDK_第2张图片

可以看到成功页面,如果GCC版本太高的话,gcc下会出现报错信息,此处请注意检查。

还有一个坑就是出现了以下报错信息:

Could not find required tool for ZIPEXE

在这里插入图片描述

这是由于没有安装zip导致的,执行 sudo apt-get install zip即可

接下来就可以输入 make images 执行整个OpenJDK编译了,此处编译会耗费大量时间,笔者大概花费了一个小时左右才编译完成(R7 5800H)。

Creating jdk image
Creating CDS archive for jdk image
Stopping sjavac server
Finished building target 'images' in configuration 'macosx-x86_64-server-fastdebug'

在这里插入图片描述

当弹出以上文字时说明编译成功

验证编译结果

进入编译成功后的jdk中的bin目录

执行 java -version命令,可以看到以下结果

在这里插入图片描述

说明编译成功,此目录已经可以作为一个jdk使用

四、配置环境变量

  • 使用vim配置环境变量

sudo vim ~/.bashrc

  • 使用编辑模式在文档最后输入
    # 这里要更改成你自己的目录
    export JAVA_HOME=/mnt/e/download/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=.:${JAVA_HOME}/bin:$PATH
  • 编辑完成后,使用:w 回车保存

使用:wq 退出vim

退出vim后输入以下代码保存环境变量

source ~/.bashrc

  • 查看Java 版本信息

java -version

  • 得到输出结果
openjdk version "12-internal" 2019-03-19
OpenJDK Runtime Environment (fastdebug build 12-internal+0-adhoc.root.jdk12-06222165c35f)
OpenJDK 64-Bit Server VM (fastdebug build 12-internal+0-adhoc.root.jdk12-06222165c35f, mixed mode)

可以看到现在的jdk已经成了我们自己编译的jdk

五、使用CLion进行调试

现在我们在原来的WIndows操作系统上打开CLion,然后选择远程连接,连接到自己的WSL上,打开jdk12的源码

Windows使用WSL编译自己的JDK_第3张图片

Windows使用WSL编译自己的JDK_第4张图片

现在,我们就可以编译jdk12的源码并且使用自己调试的jdk了

你可能感兴趣的:(周记,windows,java,开发语言,ubuntu,jvm)