ubuntu15.04环境下编译jdk8源码

新装的ubuntu15.04环境下编译openjdk8源码:
1.下载源码:openjdk-8u40-src-b25-10_feb_2015.src.zip
    http://download.csdn.net/detail/socrj/8454221(CSDN上网友上传的openjdk-8u40-src-b25-10_feb_2015.7z)
    官网下载地址:http://download.java.net/openjdk/jdk8/
    (linux上临时装上了解压7z的包)
    采用源码src.zip类型直接下载方式,没有采用官网http://openjdk.java.net/推荐的 OpenJDK Mercurial repository方式进行下载
2.解压下载下来的openjdk-8u40-src-b25-10_feb_2015包,进入openjdk目录,在openjdk目录下 找到 README-builds.htm l文件,对编译步骤进行详细阅读:按照上面的步骤进行编译源码。

3.打开终端,cd到openjdk目录下:
    执行以下命令安装依赖(如果没有安装aptitude,可以使用sudo apt-get install aptitude先安装aptitude)
sudo aptitude build-dep openjdk-7
sudo aptitude install openjdk-7-jdk
按照网上多个教程中编译openjdk7的方法没有编译成功,由于又是最新版本的ubuntu15.04,所以尝试编译了openjdk8,在尝试编译openjdk7的过程中,linux环境下安装了好多个版本的jdk,包括openjdk7,openjdk6,官方jdk7,官方jdk8.均位于/usr/lib/jvm/目录之下。

问题:在直接使用命令 sudo apt-get install openjdk-7-jdk安装了openjdk7之后,测试java运行环境,出现这种状况:

adongguo@adongguo-Dell-System-Inspiron-7420:~$ java -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
红色部分在之后会影响到Bootstrap JDK的查找,此处使用unset JAVA_TOOL_OPTIONS方法将环境变量中JAVA_TOOL_OPTIONS删除掉,然后再测试java环境,没有了影响。(具体原因不是很清楚,只是尝试过程中发现的)

4.设置环境变量:
export LANG=C
export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"
(注意:红色部分为jdk报名,可能与默认安装好的openjdk7的不同,注意修改)
另:在之前尝试编译openjdk7的过程中,执行过别人的安装依赖的一个命令(参看java虚拟机精讲-高翔龙版),如下:
sudo apt-get install build-essential gawk m4 openjdk-6-jdk libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev X11proto-print-dev binutils libmotif3 libmotif-dev ant
并得到了都是最新版本的各种依赖库:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ant is already the newest version.
binutils is already the newest version.
build-essential is already the newest version.
gawk is already the newest version.
libasound2-dev is already the newest version.
libxrender-dev is already the newest version.
m4 is already the newest version.
x11proto-print-dev is already the newest version.
xorg-dev is already the newest version.
xutils-dev is already the newest version.
libmotif-dev is already the newest version.
libmotif3 is already the newest version.
libcups2-dev is already the newest version.
openjdk-6-jdk is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 134 not upgraded.

5. 在openjdk根目录下执行命令 bash ./configure 如果出现错误根据执行过程中的日志进行排查,直到配置完成没有错误为止。
(就是在这个过程中,因为JAVA_TOOL_OPTIONS环境变量的存在出现了找不到Bootstrap JDK的问题,删除该环境变量就可以了,可以用bash ./configure --with-boot-jdk=path(path指的是自己指定的编译jdk路径,要求jdk版本大于7))
具体编译出来的类型,需要按照
6.执行命令 make all
make命令有好多的配置参数,但是这里直接按照 README-builds.htm l文件中描述的方式采用了make all命令,至于自己想要的配置可以按照文件中描述的方式配置configure命令的参数。

7.编译过程中遇到问题只能根据上面的输出日志进行排查了,我在编译过程中万幸的没有出现问题,最后输出如下内容表示编译成功:

----- Build times -------
Start 2015-10-17 09:57:38
End   2015-10-17 10:14:32
00:00:39 corba
00:00:23 demos
00:02:20 docs
00:06:57 hotspot
00:00:33 images
00:00:25 jaxp
00:00:35 jaxws
00:04:05 jdk
00:00:39 langtools
00:00:18 nashorn
00:16:54 TOTAL
-------------------------

编译成功之后进入openjdk目录下的/build/ linux-x86_64-normal-server-fastdebug/images/j2sdk-image目录(红色部分根据自己配置不同可能不同,我配置了一个fastdebug,默认为release),这个目录下就是自己编译好的openjdk8。在该目录下执行 ./java -version可以看到自己编译的jdk版本信息。


这只是一个尝试编译openjdk的过程,只是凑巧遇到的问题比较少,编译的过程比较顺利,网上各种编译openjdk7的方式,只要是显示出最终结果的都时编译出来的,只不过编译的过程对环境的要求非常苛刻,谁都不知道自己编译的时候会出现什么幺蛾子,如果决心编译成功的话,就不断的尝试吧,即使是重装系统也是有可能的。


















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值