OpenJDK的编译(Deepin15 平台)

        一年前在ubuntu 14.04上编译成功了jdk1.8,前不久换了deepin 15来用(可以用windows下面的几个常用软件和下载工具+Android源代码编译+商店配置好各种开箱即用的开发工具,没理由回ubuntu了),jdk源代码运行环境都没有了,只能重新搞过。因为,deepin15及ubuntu 16.10这种高版本用ubuntu 14.04这种低版本编译方法会出现各种问题,特别有些依赖问题只有deepin15/Debian高版本系列才会有,特此总结一下,供在deepin系统上以Java为业的网友做学习提高之用。

 OpenJDK的编译分为四部分:1 下载源代码,2 编译环境准备,3 高版本Linux问题处理 4 编译

一 下载源代码

    1年前的话,我是直接到openJdk网站 http://download.java.net/openjdk/jdk8/ 去下载打包好的源代码包,结果今天再去看的话,下载链接还是哪个,但点进去,已经被oracle这个货给和谐了。所以,决定使用官方第二种方式,hg下载,类似git的下载方式,下载Jdk8的源代码,方法如下:

 $sudo apt-get install mercurial -y
 $hg clone http://hg.openjdk.java.net/jdk8u/jdk8u/  
 $cd jdk8u
 $sh get_source.sh  
这里会正式下载每个包的源代码,大概是800多M,速度并不慢,看各位的网速吧。

二 编译环境的准备
1) 设置环境变量
    首先,要说一下,构建openJDK要一个药引,这个药引叫boot jdk,这个工具一般已经集成在普通的jdk中了,所以,在这之前一定要安装一个普通的JDK7到系统上(不能比jdk8高,也不能太低,只能是低一个版本,java的二进制包安装方法,这里就不介绍了。~题外话,当今的编程语言版本基本都是用自家的低版本去编译出来的),然后继续在自家根目录.bashrc里边添加以下变量。

代码
#build openjdk option
export SKIP_DEBUG_BUILD=false    
export SKIP_FASTDEBUG_BUILD=true    
export DEBUG_NAME=debug     
export LANG=C     
export ALLOW_DOWNLOADS=true 
export USE_PRECOMPILED_HEADER=true   

export BUILD_LANGTOOLS=true  
export BUILD_JAXP=true  
export BUILD_JAXWS=true  
export BUILD_CORBA=true  
export BUILD_HOSTPOT=true  
export BUILD_JDK=true  
BUILD_DEPLOY=false  

unset CLASSPATH    
unset JAVA_HOME

2)配置编译环境
代码:
$cd jdk8u{jdk源代码根目录}
$sh configure 或者 bash configure
该过程会检测构建环境是否符合要求,如有问题,它会给出提示。下面先给出我碰到的要安装的库文件:

代码:
ubuntu和debian系统
$sudo apt-get install libxext-dev libxrender-dev libxtst-dev libxt-dev
$sudo apt-get install libcups2-dev
$sudo apt-get install libfreetype6-dev
$sudo apt-get install build-essential    
$sudo apt-get install ant
$sudo apt-get install xorg-dev
Fedora系统---没错,我还在Feodra上面试过,就下面安装依赖库不同,其他的一样.
$sudo yum groupinstall "Development Tools"
$sudo yum install gcc-c++
$sudo yum install libXtst-devel libXt-devel libXrender-devel
$sudo yum install cups-devel
$sudo yum install freetype-devel
$sudo yum install alsa-lib-devel


后面可能,大部分还有继续安装的缺失的工具,都可以通过提示apt安装即可。说一下deepin15/debian没有的库文件安装:
libX11-dev,这个库是没有的预装的,库里也没记录。上网到debian库找,
debian库总地址,以后大家缺少包都可以上debian库里找。
https://www.debian.org/distrib/packages
libX11-dev地址:
http://mirrors.ustc.edu.cn/debian/pool/main/libx/libx11/libx11-dev_1.6.4-3_amd64.deb

下载后安装
$sudo dpkg -i libx11-dev_1.6.4-3_amd64.deb

三 高版本Linux问题处理
在上面sh configure命令检查机制跑通后,即无error信息后,就可以处理高版本Linux编译环境的问题。

代码
$cd cd jdk8u{jdk源代码根目录}
$gedit ./hotspot/make/linux/makefiles/gcc.make
查找一个字段WARNINGS_ARE_ERRORS = -Werror,找到后,把它注释掉。

四 编译
因为高版本的gcc不再支持stabs,make下要加点参数(DEBUG_BINARIES=true),同时在运行时,可能出现问题,最好把错误日志打印出来。

代码
$make all DEBUG_BINARIES=true 2>&1 |tee build.log
接下来就是20多分钟的等待,编译出来的build文件有3.3G大小,还是挺大的。


后记:
   想在Windows下尝试编译jdk源代码的程序员网友可以试试以下方法,全网只有这两个下面位分享了方法,而且第二位是参考第一位的,一定要安装vs201X,因为要用到它的C++编译器,过程真的非常复杂。
https://www.cnblogs.com/lighten/p/5906359.html
http://www.jianshu.com/p/e85f93cc74cb

enjoy~

附图:


--编译成功




---上面1.7.0_95是系统JDK版本,下面1.8.0-internal是使用源代码编译的JDK

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值