安装环境:CentOS7
。
下载地址:https://hg.openjdk.java.net/jdk/jdk12/
,点击左边的zip。
下载后的包名为jdk12-06222165c35f.zip
,上传至linux的/usr/local目录下,并解压。
# yum install -y unzip 没装的unzip的先安装
# unzip jdk12-06222165c35f
解压后,打开doc/building.xml或doc/building.md学习如何编译,本文也参考这个文档进行的。
因为OpenJDK的各个组成部分有的是使用C++编译,有的是使用Java自身实现的,所以编译这些Java代码需要一个可用的JDK,官方称这个JDK为“Bootstrap JDK”,所以我使用的版本为:
# java -version
java version "11.0.8" 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)
下载地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
。
下载后的包名为jdk-11.0.8_linux-x64_bin.tar.gz
,上传至linux的/usr/local目录下,并解压。
然后配置环境变量:
# vi /etc/profile
最后添加下面两行
JAVA_HOME=/usr/local/jdk-11.0.8
export PATH=$PATH:$JAVA_HOME/bin
然后使用source /etc/profile
刷新配置,使用java -version
命令验证环境变量是否配置成功。
# yum groupinstall -y "Development Tools"
# yum install -y freetype-devel
# yum install -y cups-devel
# yum install -y libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel
# yum install -y alsa-lib-devel
# yum install -y libffi-devel
# yum install -y autoconf
# yum install -y fontconfig-devel
上面的依赖安装完成后,运行configure对编译进行相关配置:
# bash configure --enable-debug --with-jvm-variants=server
如果这一步报错了,根据错误信息安装相关的依赖。
configure的相关参数可以使用bash configure --help
查看,这里列举几个常用的参数:
运行make
,如果安装失败了,解决错误后要使用make clean
和make dist-clean
清理后再执行make
。
# make
Building target 'default (exploded-image)' in configuration 'linux-x86_64-server-fastdebug'
Compiling 8 files for BUILD_TOOLS_LANGTOOLS
Compiling 19 properties into resource bundles for jdk.compiler
Parsing 2 properties into enum-like class for jdk.compiler
Compiling 13 properties into resource bundles for jdk.javadoc
Compiling 117 files for BUILD_java.compiler.interim
Compiling 396 files for BUILD_jdk.compiler.interim
Compiling 304 files for BUILD_jdk.javadoc.interim
Compiling 162 files for BUILD_TOOLS_JDK
...
...
Warning: No SCM configuration present and no .src-rev
Compiling 4 files for BUILD_JIGSAW_TOOLS
Stopping sjavac server
Finished building target 'default (exploded-image)' in configuration 'linux-x86_64-server-fastdebug'
# cd build/linux-x86_64-server-fastdebug/jdk/bin
# ./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)
# yum groupinstall -y "GNOME Desktop"
# init 5
安装完后最好用root用户登录,不然后面会有一堆权限问题。
下载地址:https://www.jetbrains.com/clion/download/#section=linux
。
上传至/usr/local/目录下,并解压:
# tar -zxvf CLion-2020.2.tar.gz
第一次运行clion:
# cd clion-2020.2/bin
# ./clion.sh
第一次运行时会在应用菜单(类似windows的开始菜单)中创建一个快捷菜单,下次运行从快捷菜单进入(不要使用clion.sh,否则之前的配置没有了)。
clion打开后可能会报一个错误Inotify Watches Limit
,根据后面的链接解决:https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
。
在右上角,和idea一样的位置,创建一个Cmake Application
Execuable中要选择编译出来的java,对应的目录为/usr/local/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk/bin。
然后我们把断点打到/usr/local/jdk12-06222165c35f/src/java.base/share/native/libjli/java.c的394行,然后点击debug运行,可以看到进入断点,并且在Debug面板可以看到我们传入的-version参数,如下图所示:
直接继续运行,最终会在控制台看到如下输出:
/usr/local/jdk12-06222165c35f/build/linux-x86_64-server-fastdebug/jdk/bin/java -version
Signal: SIGSEGV (Segmentation fault)
Signal: SIGSEGV (Segmentation fault)
Signal: SIGSEGV (Segmentation fault)
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)
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://morris131.blog.csdn.net/article/details/108238286
内容来源于网络,如有侵权,请联系作者删除!