ubuntu编译并调试OpenJDK8源码实践

最近打算研究一下 jvm 相关的知识,所以想编译 OpenJDK 的源码,一直在Mac上面编译,但是总是出现莫名其妙的error,还找不到有效的解决方式,所以还是进入 Ubuntu 下面进行编译,虽然中间也出现一个问题,但是很快找到了解决方案,大概总共用了 6 分钟左右就编译了 OpenJDK8 的源码,下面记录一下实践过程,仅供参考!

相关环境

  1. Ubuntu16.04
  2. OpenJDK8.0源码
  3. oraclejdk1.7.0.80

上面便是本次的编译环境,Ubuntu 是我在 Mac 下面用 virtualbox 创建的,当然也可使用真正的 Ubuntu 环境。

  • 下载 OpenJDK8.0 源码

首先我们得下载 OpenJDK8.0 的源码,一种方式是通过 hg 来下载,这种方式取决于网络速度,很慢很慢,有的时候还会停止,还有一种方式就是直接下载源码的压缩包,这里我们使用第二种方式 openjdk-8u40-src-b25-10_feb_2015.7z ,下载后我们把它解压到一个目录下面。

  • 安装部分依赖包
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev复制代码
  • 编译前检查

我们进入刚刚解压后的 OpenJDK8.0 根目录,输入以下命令:

bash configure复制代码

当出现以下内容时就可以进行编译了

  • 开始编译
sudo  make复制代码

等待大概 7~8 分钟就有就能编译好了。

  • 问题解决

如果出现以上的 error 的话,到
/openjdk/build/linux-x86_64-normal-server-release/下面,找到 Makefile 这个文件,打开它,找到下面这几行代码

SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
OS_VERSION := $(shell uname -r)
EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))复制代码

SUPPORTED_OS_VERSION 后面增加 4%,然后保存退出,重新执行编译命令。

  • 结果校验

当我们编译成功后,我们得检验一下结果如何,进入到下面这个目录下面

/openjdk/build/linux-x86_64-normal-server-release/jdk/bin复制代码

在 bin 目录下面,执行

./java -version复制代码

正常情况下,我们编译后的 openjdk ,会带有我们用户名的,如下所示

而我们本机一开始安装的 jdk 则是

通过以上几个步骤,我们便完成了OpenJDK8的编译。

  • eclipse调试

我们首先下载 Eclipse IDE for C/C++ Developers 这个版本的 eclipse ,这个版本可以到官网去查找然后下载。我们打开 eclipse 后,选择 import ,依次选择 C/C++ 下面的 Existing Code as makefile Project 内容

点击 next ,进入到下个页面,选择 Linux GCC ,然后导入编译的 OpenJDK8 的工程即可。

工程目录。


关于作者

github: github.com/crazyandcod…
博客: crazyandcoder.github.io
掘金:juejin.im/user/56b96a…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值