看了深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 之后决定自己编译一下OpenJDK,但是书中介绍的关于编译和调试部分已经过时了。所以根据搜索的资料,自己编译调试了一下。
IDE:Netbeans 8.2(最新版本即可)
操作系统:Ubuntu 14.04 (内核3.13.0)
make版本:3.81
源代码:OpenJDK 8
编译OpenJDK 8
下载源代码
我是直接下载打包好的源代码(使用hg下载还需要再安装hg,这个东西相对来说还是太小众了),地址在这里
环境配置
唯一需要注意一点的就是Bootstrap JDK
的版本需要低于要编译的JDK的版本。即如果要编译OpenJDK 8,那么Bootstrap JDK
的版本需要为7。
依赖安装没有必要复制别人的,你完全可以运行bash ./configure
文件,它会提示你哪些依赖没有安装。反复执行几次,直至成功。
如果你是编译OpenJDK 8,那么环境变量部分也可以直接忽略。这种方式是编译之前版本的方式。从OpenJDK 8开始,改为了"configure && make" style build
。
编译
make all
使用NetBeans
调试
打开项目
其实OpenJDK 8里边已经有针对NetBeans
生成好的项目文件,我们没有必要像有些文章或者书里边所说的创建新的C++项目然后导入源代码这么麻烦,直接打开即可。
路径在./common/nb_native
打开之后,注意将configuration切换为”Linux_64”
其实我们也可以略过上边的
make all
,用NetBeans
打开后直接编译。效果是一样的。
容易遇到的问题
文章NetBeans 调试 openjdk8里边提到,需要在构建命令后边加上参数DEBUG_BINARIES=tr