ubuntu14.04编译openjdk7
来源:互联网 发布:seo转行前端开发 编辑:程序博客网 时间:2024/06/02 07:02
一、编译环境准备
1、ANT等编译工具下载
首先打开终端,输入指令:
sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev libxt-dev ant libxtst-dev
然后输入指令:ant -version,查看是否安装成功。
2、安装最新的Mercurial(openjdk使用的版本控制工具)
Mercurial最好是最新的,否则最后编译openjdk的时候会出错。首先打开终端,依次输入如下指令:
sudo apt-get install python-all-dev
sudo apt-get install python-setuptools
sudo easy_install -U mercurial
然后输入指令:hg --version,来查看是否安装成功。
3、下载BootstrapJDK
编译openjdk需要一个BootstrapJDK做支持,BootstrapJDK通常比openjdk旧一个版本,比如本文就采用oracle的jdk6来作为BootstrapJDK。首先用命令新建jvm目录(如果已经存在jvm目录,则无需新建):
sudo mkdir /usr/lib/jvm
然后将下载好的jdk-6u45-linux-x64.bin(下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html)放到jvm目录下。接下来用命令:
sudo chmod u+x /usr/lib/jvm/jdk-6u45-linux-x64.bin
修改该bin文件的权限,让它变成可执行的。最后用命令:
sudo /usr/lib/jvm/jdk-6u45-linux-x64.bin
解压后得到一个名为jdk1.6.0_45的文件夹。
4、安装编译openjdk7的依赖
5、下载openjdk7的源码包
通过版本控制工具Mercurial,将OpenJDK7下载到openjdk7目录下。首先打开终端,并定位到/usr/lib/jvm目录,然后依次输入如下指令:二、开始编译
1、修改CurrencyData.properties文件
AZ=AZM;2010-12-31-20-00-00;AZN
修改381行
MZ=MZM;2010-06-30-22-00-00;MZN
修改443行
RO=ROL;2010-06-30-21-00-00;RON
修改535行
TR=TRL;2010-12-31-22-00-00;TRY
修改561行
VE=VEB;2010-01-01-04-00-00;VEF
2、编写脚本
OpenJDK在编译时会读取许多环境变量,所以必须对Linux的环境变量进行配置,这里我们把配置信息写在一个新建的build.sh的脚本文件。打开终端,定位到/usr/lib/jvm/openjdk7目录下,执行如下命令:#!/bin/bash# 语言选项,必须设置,否则编译好后会出现一个 HashTable 的 NPE错export LANG=C# Bootstrap JDK 解压路径,必须设置export ALT_BOOTDIR=/usr/lib/jvm/jdk1.6.0_45# 允许自动下载export ALLOW_DOWNLOADS=true# 比较本次 build 出来的映像与先前版本的差异export SKIP_COMPARE_IMGAGES=true# 使用预编译头文件,不加这个编译会变慢export USE_PRECOMPILED_HEADER=true# 要编译的内容export BUILD_LANGTOOLS=trueexport BUILD_HOTSOPT=trueexport BUILD_JDK=trueexport BUILD_JAXP=true export BUILD_JAXWS=true export BUILD_CORBA=true#是否跳过编译debug版 export SKIP_DEBUG_BUILD=false#是否跳过编译fastdebug版 export SKIP_FASTDEBUG_BUILD=true export DEBUG_NAME=debug # 把它设置为 false 可以避开 javaws 和浏览器 Java 插件之类的部分的 buildBUILD_DEPLOY=false# 把它设置为 false 就不会 build 出安装包,因为安装包里有奇怪的依赖BUILD_INSTALL=false# 编译结果所存放的路径export ALT_OUTPUTDIR=/usr/lib/jvm/openjdk7/build# 这两个环境变量必须去掉,不然会发生奇怪的事情unset JAVA_HOMEunset CLASSPATH# 编译检查make sanity && make DISABLE_HOTSPOT_OS_VERSION_CHECK=OK
3、编译
退出并保存上述脚本文件后,输入如下命令:三、编译结果
i7处理器的编译总时间大约为15分钟,编译成功后的结果如图1所示。四、总结
- ubuntu14.04编译openjdk7
- ubuntu14 编译 openjdk7
- Ubuntu14.04+OpenJDK7下载编译安卓源代码
- 32位ubuntu14下编译openjdk7
- ubuntu10.04编译openjdk7
- Ubuntu16.04 编译 OpenJDK7
- 在Ubuntu12.04编译OpenJDK7
- Ubuntu16.04中编译openjdk7
- Ubuntu12.04 i386 编译OpenJDK7 记录
- linux ubuntu 14. 04下 OpenJdk7编译
- Ubuntu14.04 安装openjdk7和openjdk8与切换
- Windows下编译OpenJDK7
- Ubuntu 下编译 openJDK7
- fedora15 编译openjdk7
- CentOS6.5编译openjdk7
- openjdk7的编译
- Ubuntu12编译openjdk7
- ubuntu下编译openjdk7
- php中 foreach引用(&)的问题
- php多维数组平均值
- java如何安全的延迟初始化
- static变量/方法,与基类父类执行的先后顺序
- Java多线程系列--“基础篇”08之 join()
- ubuntu14.04编译openjdk7
- Problems & Solutions -- 9 No Socket could be created
- android studio转成依赖项目lib再连同资源文件一起打jar包过程
- 面试问题组合和聚合有什么区别
- 初学python爬虫
- 第一篇 关于依赖注入框架dagger2的使用和理解
- CentOS6.5 非root用户(普通用户)安装mysql
- C# string.Trim删不掉\r
- 关于Unity3D中UnityEngine.Physics.Raycast的用法