您的位置:首页 > 编程语言 > Java开发

Ubuntu14.04 编译openjdk7u6

2014-08-06 13:13 92 查看
Ubuntu14.04编译openjdk7u6

从昨天早上到今天中午,捣鼓了一天多,终于成功了。

中间重装了一次系统。

环境:Ubuntu14.04LTS64


    java-6-openjdk-amd64


    openjdk-7u6-fcs-src-b24-28_aug_2012.zip


感悟:

编译openjdk与环境很有关系,原来用32位ubuntu的时候,怎么都不成功,关键是网上很多人用的是64位机器,对32位编译讲解的比较少,所以失败了好多次后果断换成64位。


openjdk源代码下载版本很有技巧,网上大多教你从官网下载,这叫一个坑爹,第一次不小就下载了一个老版本,结果make运行到中途一堆错误,真叫人伤心。楼主推荐openjdk-7u6-fcs-src-b24-28_aug_2012.zip,在make中没有修改任何源代码,堪称完美。


jdk和jre的版本用jdk6,楼主编译多次总是会报如下错误:


Erroroccurred during initialization of VM

java/lang/NoClassDefFoundError:java/lang/invoke/AdapterMethodHandle

最后发现是jdk版本问题,参考http://blog.zarue.com/blog/2014/06/21/netbeans-debug-hotspot/

弄了这么久,终于成功了。


下面说说主要步骤:

配置环境<参考http://wendal.net/420.html>

apt-getbuild-dep openjdk-6

apt-getinstall openjdk-6-jdk

apt-getinstall libasound-dev build-essential

然后注意配置环境变量:

~sudovi /etc/profile

在最后加上:


exportJAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64

exportJRE_HOME=${JAVA_HOME}/jre

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportPATH=${JAVA_HOME}/bin:$PATH


运行~source/etc/profile使jdk环境生效。

楼主配置完成后查看效果:


luo@luo-M4110:~$java -version

javaversion "1.6.0_31"

OpenJDKRuntime Environment (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1)

OpenJDK64-Bit Server VM (build 23.25-b01, mixed mode)

luo@luo-M4110:~$javac -version

javac1.6.0_31

luo@luo-M4110:~$


下载openjdk-7u6-fcs-src-b24-28_aug_2012.zip

网上有很多种下载方法会使人头晕眼花,楼主认为最漂亮的链接是:

http://download.java.net/openjdk/?q=download/openjdk/

【说明:这个链接展示的是用wget命令下载的资源目录。为了方便读者,这里附上

openjdk-7u6-fcs-src-b24-28_aug_2012.zip的下载链接http://pan.baidu.com/s/1pJ4rxyV,欢迎交流学习。

免得不熟悉官网的人被困在几个页面上,最终还是没有找到最新的版本。

下载完成后当然是用unzip解压,最后会有一个openjdk的文件夹。


编译

编译参考:http://blog.csdn.net/myproudcodelife/article/details/24844427

下面是楼主的build.sh:

#!/bin/bash

#设置语言

exportLANG=C

#exportALT_BOOTDIR=/usr/cao/jdk1.7.0_45

exportALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64/

#允许自动下载依赖包

exportALLOW_DOWNLOADS=true

#使用预编译头文件,不加这个编译会更慢

exportUSE_PRECOMPILED_HEADER=true

#要编译的内容

exportBUILD_LANGTOOLS=true

exportBUILD_JAXP=true

exportBUILD_JAXWS=true

exportBUILD_CORBA=true

exportBUILD_HOSTPOT=true

exportBUILD_JDK=true

#要编译的版本

exportSKIP_DEBUG_BUILD=false

exportSKIP_FASTDEBUG_BUILD=true

exportDEBUG_NAME=debug

#把它设置为FALSE可以避免javaws和浏览器Java插件之类的部分build

BUILD_DEPLOY=false

#把它设置为false就不会build出安装包。因为安装包里有一些奇怪的依赖

#但即便不build出它也已经得到完整的JDK镜像,所以还是不用build它

BUILD_INSTALL=false

#存放编译结果

exportALT_OUTPUTDIR=/usr/openjdk/build

unsetCLASSPATH

unsetJAVA_HOME

#makesanity && make

#makeARCH_DATA_MODEL=64 BUILD_JAXWS=false BUILD_JAXP=false

make2>&1 | tee $ALT_OUTPUTDIR/build.log

等待成功




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu openjdk 源代码