Ubuntu14.04 编译openjdk7u6

来源:互联网 发布:体育视频分析软件 编辑:程序博客网 时间:2024/05/29 03:43

Ubuntu14.04编译openjdk7u6


从昨天早上到今天中午,捣鼓了一天多,终于成功了。
中间重装了一次系统。
环境:Ubuntu14.04LTS64
    java-6-openjdk-amd64
    openjdk-7u6-fcs-src-b24-28_aug_2012.zip

感悟:

  • 编译openjdk与环境很有关系,原来用32ubuntu的时候,怎么都不成功,关键是网上很多人用的是64位机器,对32位编译讲解的比较少,所以失败了好多次后果断换成64位。
  • openjdk源代码下载版本很有技巧,网上大多教你从官网下载,这叫一个坑爹,第一次不小就下载了一个老版本,结果make运行到中途一堆错误,真叫人伤心。楼主推荐openjdk-7u6-fcs-src-b24-28_aug_2012.zip,在make中没有修改任何源代码,堪称完美。
  • jdkjre的版本用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_45exportALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk-amd64/
#允许自动下载依赖包exportALLOW_DOWNLOADS=true
#使用预编译头文件,不加这个编译会更慢exportUSE_PRECOMPILED_HEADER=true
#要编译的内容exportBUILD_LANGTOOLS=trueexportBUILD_JAXP=trueexportBUILD_JAXWS=trueexportBUILD_CORBA=trueexportBUILD_HOSTPOT=trueexportBUILD_JDK=true
#要编译的版本exportSKIP_DEBUG_BUILD=falseexportSKIP_FASTDEBUG_BUILD=trueexportDEBUG_NAME=debug
#把它设置为FALSE可以避免javaws和浏览器Java插件之类的部分buildBUILD_DEPLOY=false
#把它设置为false就不会build出安装包。因为安装包里有一些奇怪的依赖#但即便不build出它也已经得到完整的JDK镜像,所以还是不用buildBUILD_INSTALL=false
#存放编译结果exportALT_OUTPUTDIR=/usr/openjdk/build
unsetCLASSPATHunsetJAVA_HOME#makesanity && make#makeARCH_DATA_MODEL=64 BUILD_JAXWS=false BUILD_JAXP=falsemake2>&1 | tee $ALT_OUTPUTDIR/build.log
  • 等待成功



0 0