ubuntu编译并调试OpenJDK8源码实践
来源:互联网 发布:剑三令狐伤捏脸数据 编辑:程序博客网 时间:2024/05/18 09:22
最近打算研究一下 jvm 相关的知识,所以想编译 OpenJDK 的源码,一直在Mac上面编译,但是总是出现莫名其妙的error,还找不到有效的解决方式,所以还是进入 Ubuntu 下面进行编译,虽然中间也出现一个问题,但是很快找到了解决方案,大概总共用了 6 分钟左右就编译了 OpenJDK8 的源码,下面记录一下实践过程,仅供参考!
相关环境
- Ubuntu16.04
- OpenJDK8.0源码
- 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-devsudo apt-get install libcups2-devsudo apt-get install libfreetype6-devsudo 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: https://github.com/crazyandcoder
博客: http://crazyandcoder.github.io
掘金:https://juejin.im/user/56b96af96240b8005865df59/share
- ubuntu编译并调试OpenJDK8源码实践
- 在Ubuntu 12.04 上编译调试 OpenJDK8
- 修改,编译,GDB调试openjdk8源码(docker环境下)
- CentOS上编译OpenJDK8源码 以及 在eclipse上调试HotSpot虚拟机源码
- 编译openjdk8
- 编译openjdk8
- Ubuntu源码编译安装实践
- openjdk8最新源码编译及使用(ubuntu16.04)
- Ubuntu下Kubernetes源码编译--手动实践
- 使用VS2008编译EDK2源码并调试
- MAC编译OpenJDK8
- centos7编译openjdk8
- ubuntu14 编译openjdk8
- ubuntu 安装openjdk8
- Ubuntu安装、切换openjdk8
- ubuntu编译android源码并配置模拟器
- Ubuntu环境下载并编译Android源码
- Java虚拟机学习笔记-记录一次编译OpenJDK8与调试的过程
- 迭代硬阈值(IHT)
- linux下安装activeMq
- import
- input域之file附件选择控件
- 如何使用pywinauto
- ubuntu编译并调试OpenJDK8源码实践
- 【学习C++】学习C++ -> 循环语句与循环控制
- MYSQL批量插入数据库实现语句性能分析
- linux系统 定时器
- SQL Server2008 学习之(十一) :有趣的内外连接
- 第十二周 项目 验证算法 (2)Kruskal算法的验证
- 过滤器的基础
- 第二章 面向对象设计原则实训
- java入门知识