前提
- 使用ubuntu 编译jvm
- 建议编译jdk 9 而不是jdk8 , jdk8 依赖 jdk7 目前jdk7需要手动下载
编译步骤
- 首先需要安装mercurial,这是openjdk的代码管理工具,具体怎么安装可以百度一下,几行命令就能搞定
- 执行命令
hg clone http://hg.openjdk.java.net/jdk9/jdk9 openjdk9
cd openjdk9
sh ./get_source.sh //jdk 代码
bash ./configure // 检查配置,有什么配置错误直接按提示来配置就可以
make all
-
遇到的坑 遇到一个编译警告,百度了下,最终得到答案
int readdir_r(DIR*,dirent*,dirent**) is deprecated
这些其实不是错误信息,是编译时的警告信息,这里的make默认将警告信息当成错误信息来处理了,删除/home/xingru/openjdk-jdk9-jdk9/build;
重新configure:
sh configure --disable-warnings-as-errors --enable-debug -
最终验证
cd openJdk9/build/linux-x86_64-normal-server-fastdebug/jdk/bin ./java -version
最终效果