Ubuntu14.04 编译openjdk7u6
2014-08-06 13:13
92 查看
Ubuntu14.04编译openjdk7u6
感悟:
下面说说主要步骤:
下面是楼主的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
从昨天早上到今天中午,捣鼓了一天多,终于成功了。
中间重装了一次系统。
环境: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
等待成功
相关文章推荐
- 自己动手编译的openjdk7u6(在ubuntu14.04)
- Ubuntu 14.04 编译newLISP 10.6.0
- 基于Ubuntu 14.04 LTS编译Android4.4.2源代码
- 基于Ubuntu 14.04 LTS编译Android4.4.2源代码
- BitBlaze TEMU/Tracecap 在64位Ubuntu 14.04 LTS上的编译
- ubuntu 14.04编译安装xen4.4总结
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- ubuntu 14.04 编译安装 apache 和 php
- ubuntu 14.04 64位安装vmware 10 编译net device 失败
- 基于Ubuntu 14.04 LTS编译Android4.4.2源代码
- 在Ubuntu 14.04 64bit上编译安装xbt tracker
- 如何在ubuntu14.04(64位)编译运行32位程序
- 关于Ubuntu 14.04 x64 安装 Vmware 10 x64 编译 vmnet失败的解决方法
- Ubuntu 14.04 编译 openjdk-7u40
- ubuntu 14.04 编译ogre
- firefox在ubuntu-14.04下的成功编译
- Ubuntu14.04 32bit编译Android2.3.4源码全过程记录