Openjdk8编译过程

最近在看JVM相关教程, 由于资源过于老旧,走了好多坑,这里记录一下自己的编译过程.

1. 准备

   自己是在VirtualBox虚拟linux系统来操作的, 运行还是有点卡. 听过Docer运行会好一点,没试过,有兴趣的可以尝试. 另外还有在windows上折腾的,这个更加复杂, 资料也繁杂多了,这里只讨论最直接方便的方式

   虚拟机: Oracle VM VirtualBox 5.0 (这个与编译源码没什么关系,能运行linux就行)

   OS: CentOS 7.6 (与ubuntu相比, 主要的过程变化大,只是前期准备命令可能不一样)

   源码: Openjdk8u

   BootstrapJDK: openjdk7u

2. 资源链接

   源码: https://github.com/yuexialiao08/openjdk8u

3. 相关说明

   可以自行阅读源码里的reame.html. 这里结合其他人的经验说明一下, 源码的版本与linux的版本需要配合使用,不然可能出现一些坑.

   bootstrapJDK需要比源码提前一个主要版本,比如源码是openjdk8,bootstrapJDk需要使用jdk7,这样可以避免编译时引入不必要的代码到JDK中.

4. 步骤

4.1 自己不知道先安装哪个,就直接./configure

     然后里面会提示需要安装的包, 比如bootstrapJDk, ccache, freetype等

     ./configure 没有提示没问题后,继续下面的操作

4.2 make

    有的资料显示先make sanity检查一下, 不过自己使用的源码里没有sanity这个脚本, 只能放弃这一步, 直接编译

    在编译过程中,出现一些warning, error, 只要最后能够编译完成, 应该问题不大. 自己主要是想了解一个过程,没有深入研究出现的问题原因

4.3 检查编译结果

   在源码目录下, cd build/xxx(.configure里配置的版本)/jdk/bin

   java -version

   javac -version

5 编译完成

----------------------------------------------------------------------------------------------------------

----------------------------------   一些问题说明   ------------------------------------------------------

---------------------------------------------------------------------------------------------------------- 

1. source code下载

在source code下载的时候, 很多地方是直接在Openjdk的官方库下载的.

hg clone http://hg.openjdk.java.net/jdk8u/jdk8u jdk8u 
cd jdk8u
bash ./get_source.sh

1.1 这里第一步没什么问题, 但是第三步get_source.sh脚本运行时,jdk, hotspot下载不了, 开始以为是网络问题, 翻墙后也不行. 自己使用浏览器访问clone的链接,发现可以正常打开,偏偏脚本运行时失败. 暂时不知道是什么原因. 放弃get_source.sh的方式(有大神知道的, 指点一下^^)

1.2 有人说可以在http://hg.openjdk.java.net/jdk8u/jdk8u/里找到下载的包zip,gz, 虽然通过browse浏览包没问题,但是下载的zip明显少了很多内容, 只有区区的1.5M大小,肯定不行.

1.3 在网盘上找到一个源码https://pan.baidu.com/s/1pLSMpAj , 不过使用中也是遇到了c++11语法问题, 一直没解决好

这里就涉及源码与操作系统的问题

对应操作环境
    Ubuntu16.04
    OpenJDK8.0源码
    oraclejdk1.7.0.80

因为自己使用虚拟机安装ubuntu16时,一直闪屏, 所以这里的openjdk8.0与ubuntu16.04是否没问题就没验证过

1.4 通过github下载源码

幸好有人将源码copy到github这个最流行的库上, 直接在上面下载, 速度也还行. 源码已经是打包好的,不需要额外再拉内容.

转载于:https://my.oschina.net/u/3504481/blog/3013510

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值