最新openjdk15编译和调试(window10)

  • Post author:
  • Post category:其他




说明

下面这些环境我只测试了jdk15,其他版本不确定是否可行,感兴趣的可以自己试一下, 还有相关软件的下载我这里不做说明,自行搜索下载,这些都搞不定最好不要编译jdk



安装cygwin

在window平台编译jdk必须借助cygwin工具,cygwin是一款在window上模拟unix环境的工具,相当于在window上运行一个子系统



在cygwin上安装必须的依赖工具,运行下面的命令安装cygwin上的工具

/setup-x86_64 -q -P autoconf -P make -P unzip -P zip

setup-x86_64就是下载的cygwin的安装工具,

如果国内下载的时候失败,可以直接打开setup-x86_64图形界面下载,然后下载地址添加阿里云的镜像下载

在这里插入图片描述

注意这里还要下载一些外部依赖包,推荐直接在cygwin的图形界面上搜索下载,这里的包一定要都搜索一遍搜索到了就安装,如果搜索不到就直接忽略,但是有的一定要下载,我这里就遇到了坑,编译之前没有下载下面的依赖,一直无法编译,后来挨着搜索一遍把能下载的都安装上去了

  • freetype-devel
  • cups-devel
  • libcups2-dev
  • libXtst-devel
  • libXt-devel
  • libXrender-devel
  • libXrandr-devel
  • libXi-devel
  • alsa-lib-devel
  • libasound2-dev



安装visual studio 2017

注意:这里一定要下载英文版的,否则会有问题,我是把系统的语言直接换成了英文

在这里插入图片描述

上边的所有东西下载好之后打开Cygwin64 Terminal,安装好应该在你的开始菜单里

安装visual studio只需要安装c++模块就行,节省时间和空间,下面是勾选的选项,你选中c++模块之后右边的子模块都会默认选中

在这里插入图片描述



下载openjdk源码

到github搜索openjdk找到openjdk的代码库,在cygwin上用git clone下来,注意这里一定要在cygwin上clone, 这里给出连接

git clone https://github.com/openjdk/jdk.git

下载好之后进入jdk目录,切换到指定的分支

git checkout jdk-15+36

注意这里切换分支也有坑,git默认会在迁出代码的时候把文件换行符转换成CRLF,这样就无法在unix环境下运行脚本了,下面关闭git的自动转换换行符的设置:

git config --global core.autocrlf=false
git config --global core.safecrlf=warn



编译&& make

bash configure --enable-debug --with-ucrt-dll-dir=/cygdrive/c/progra~2/wi3cf2~1/10/Redist/10.0.17763.0/ucrt/DLLs/x64 --disable-warnings-as-errors --with-boot-jdk=/cygdrive/d/Java/jdk-15
make


注意:


命令上所有的路径都要以cygdrive开头,这个是cygwin规定的,cygwin会把windows文件挂载到cygdrive路径下。

–with-ucrt-dll-dir要修改为你自己的windows sdk路径,这里有一点坑有的安装visualstudio后会在路径里加上版本号,但是jdk编译脚本里又没有版本号,造成读取ucrt dll失败,所以一定要看下自己的路径,安装visual studio时会默认安装,路径一般为:C:\Program Files (x86)\Windows Kits\10。

–with-boot-jdk 引导jdk,这里有点先有鸡还是先有蛋的感觉,编译jdk一定要先有一个引导jdk,设置为你提前下载好的jdk必须和你当前编译的版本相同或者少一个版本。如编译jdk15必须使用jdk14或者jdk15

–disable-warnings-as-errors这个参数也一定要加,否则make阶段会把警告当成错误处理。



调试jvm

当上边的步骤都没有问题,运行

make hotspot-ide-project

生成visual studio工程文件,生成目录

jdk/build/windows-x86_64-server-fastdebug/ide/hotspot-visualstudio

直接双击打开jvm.vcxproj文件,这时就会在visualstudio中打开

接下来开始调试jvm

如图选择server-fastdebug

在这里插入图片描述

直接运行Local windows Debugger就可以调试了,



修改命令行参数运行我们自己的class

在项目工程上右键>Properties>Debugging

在Command Arguments参数中添加

-Djava.class.path=E:\ Main

E:\盘是我的Main类所在的目录,后面更上Main,也就是我的Main.class文件就可以运行了

如果运行期间出现下面的错误可以忽略继续运行就可以了

在这里插入图片描述

如图是我运行成功的截图

在这里插入图片描述



版权声明:本文为humanhaunt原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。