记深入理解Java虚拟机-openJDK环境的构建

运行环境

  • 首先本文是在Ubuntu18.04虚拟机环境下进行环境安装

安装Ubuntu环境只能自己看了,这里提供一个网址

安装虚拟环境


参考网站

配置环境总会遇到各种问题,还好有前人已经做了,这里附上链接。对我搭环境帮助很大。

参考网站

参考网址2


配置环境流程

下载JDK12压缩包

首先是书中提到的jdk12文件

网盘下载地址:提取码:8kel


也可以去网站下载:网址

下载流程如下


到这里你已经拥有了解压包。接下来我们将解压包复制到Ubuntu环境下。

对应的目录下打开终端执行解压操作

unzip jdk12-06222165c35f.zip

如果没有安装unzip

sudo apt-get install unzip

此时已经解压完成

因为目录的名称太长了,重命名一下,便于后面的操作


配置环境前准备

然后准备后续步骤前先执行一下命令,安装第三方库和GCC编译器

sudo apt-get install build-essential
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 autoconf

假设要编译大版本号为N的JDK,我们还要另外准备一个大版本号至少为N-1的、已经编译好的JDK,这是因为OpenJDK由多个部分(HotSpot、JDK类库、JAXWS、JAXP……)构成,其中一部分(HotSpot)代码使用C、C++编写,而更多的代码则是使用Java语言来实现,因此编译这些Java代码就需要用到另一个编译期可用的JDK,官方称这个JDK为“Bootstrap JDK”。编译OpenJDK 12时,Bootstrap JDK必须使用JDK 11及之后的版本。在Ubuntu中使用以下命令安装OpenJDK 11:

sudo apt-get install openjdk-11-jdk

提醒

​ 对系统环境的最后一点建议是,所有的文件,包括源码和依赖项目,都不要放在包含中文的目录里面,这样做不是一定会产生不可解决的问题,只是没有必要给自己找麻烦。

生成含Server模式的HotSplot虚拟机


编译FastDebug版、仅含有Server模式的HotSplot虚拟机

到之前解压好的文件夹下\jdk12

执行以下语句


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

如果报错


checking for fontconfig/fontconfig.h... no
configure: error: Could not find fontconfig! You might be able to fix this by running 'sudo apt-get install libfontconfig1-dev'. 
configure exiting with result code 1

执行提示语句即可


sudo apt-get install libfontconfig1-dev

如果一切顺利就会出现书上的效果(因为是做完后做的记录,所以就不演示了)


注意

这部分不是必须的,如果上面执行成功则跳过这部分

如果没有使用上述语句而是执行了


sudo bash configure

也没有关系,只需要在jdk12文件夹下依次输入以下命令即可删除。


sudo make clean
sudo make dist-clean

然后重新运行

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

查看是否成功

此时我们已经在jdk12文件夹下多出了一个目录build目录,可能看不到,可以通过终端ls -a查看

ls -a

到这个文件夹下

cd ./build
ls -a

可以发现已经生成了一个文件夹:linux-x86_64-server-fastdebug

此时我们回到jdk目录下

cd ..

编译

执行以下语句

sudo make images

这个会执行很久,书上说大于15分钟。所以这段时间需要等待

注意点

在导入CLion之前,要编译一下,因为某些模块使用了预编译头,如果不编译,CLion会在索引过程中提示找不到各种各样的文件。

make CONF=macosx-x86_64-server-slowdebug

配置环境变量

运行完之后刚刚build-linux-x86_64-server-fastdebug文件夹下的jdk12的环境已经安装好了。我们可以进去看看

我们逐级cd到jdk目录下

cd ./build
cd ./linux-x86_64-server-fastdebug
cd ./jdk

查看jdk下文件

ll

出现以下文件我们就已经完成环境的创建啦。

将环境配置到JAVA_HOME中

因为已经创建了快照,这次环境配置只是做学习用,所以创建了全局

sudo su root
输入密码
注意

这里注意需要将JAVA_HOME中的export JAVA_HOME路径替换为自己电脑上刚刚配置的jdk12/build/linux-x86_64-server-fastdebug/jdk

参考网站

sudo vi /etc/profile
·在profile文件末尾加入:
export JAVA_HOME=/home/serendipity-nz/proj/jdk12/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

进去之后点击i编辑

编辑完点击esc健

然后shift+:

最后输入wq(保存退出)

到这里正常没问题的话输入java -version显示如下信息

如果还是有问题的话,关机重启应该就解决啦。验证方式

java -version

安装IDE并进行设置

下载IDE-CLINE(这里推荐使用和书中版本一致,因为新版我没找到NEW Cmark Project from Sources)

进入下载地址

然后选择2019.1任意linux版本下载即可

然后将下载完的解压包保存自己指定的路径下(便于寻找和启动),因为我上次安装没有指定路径,直接不见了。

解压压缩包

sudo tar -zxvf CLion-2019.1.4.tar.gz

也可以右键直接提取

然后进入到解压后文件夹的bin目录下有一个clion.sh文件

在这个窗口右击打开终端-root进入打开软件,不然可能会权限不足

sudo su root
sudo ./clion.sh

配置软件

找到之前的jdk12文件夹

打开,勾上build(毕竟等了这么久弄好的)

进去之后进入Settings设置

由于我们已经安装了gcc所以这里应该是不需要配置的,如果没有的话也配置一下


注意

这部分可以参考网站,写的比我的好些。不过也是做完演示。

配置CustomBuildTargets

然后是下一个配置-这个比较重要,不配置无法进行调试

step1

我这里已经配置好了,所以就对步骤进行说明

点击加号

然后输入信息-重点WorkingDirectory,选择你之前jdk12项目的目录

然后Argument中的信息也在下面给出


CONF=linux-x86_64-server-fastdebug
/home/serendipity-nz/proj/jdk12

这部分就配置完成了

step2

然后对第二个进行配置

和上面类似填充信息

配置Edit Configurations

然后完成之后,配置debug

然后配置信息

这里的路径需要**注意**了,把前面`/home/serendipity-nz/proj/jdk12`替换成自己的路径。
/home/serendipity-nz/proj/jdk12/build/linux-x86_64-server-fastdebug/jdk/bin/java
然后就是下面Before launch的**build**得删了

测试环境

在/src/java.base/share/native/libjli/java.c

选择之后按ctrl+f12选择方法JavaMain,跳转。

然后打上断点,debug

最后效果

书上效果

至此就算成功完成啦。

本教程是在全部配置完之后写的,中间也查阅了很多技术文档,我已经尽力回想了,但是由于隔了一天可能会有不周之处。每个地方我踩过的坑,我都尽量标注,希望本文对你有所帮助。

杂谈

MarkDown的时候需要传图嫌麻烦,创建了gitee仓库,把图片丢进去,还不错。嘿嘿,算是一个好开端吧,把前几天的git用上。大家加油。

参考

参考书籍

<<深入理解Java虚拟机:JVM高级特性与最佳实践-第三版>>

参考网站

网站1:安装ubuntu

网站2:配置环境

网站3:配置环境

网站4:配置JAVA_HOME

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值