环境准备

  1. 操作系统,ubuntu-14.04.6-desktop-amd64.iso,下载地址:http://59.80.44.100/releases.ubuntu.com/14.04/ubuntu-14.04.6-desktop-amd64.iso。
  2. Open JDK源码,openjdk-7u75-src-b13-18_dec_2014.zip,下载地址:https://download.java.net/openjdk/jdk7u75/ri/openjdk-7u75-src-b13-18_dec_2014.zip
  3. Bootstrap JDK,使用Oracle JDK:jdk-6u45-linux-x64.bin,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

编译步骤

1. 安装JDK编译依赖,执行命令:

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 ant

2. 解压Open JDK。

unzip openjdk-7u75-src-b13-18_dec_2014.zip 

3. 安装Bootstrap JDK。

./jdk-6u45-linux-x64.bin

4. 在Open JDK目录下新建shell脚本:build.sh,<OpenJDK源码目录>/build.sh,脚本内容如下:

#!/bin/bash
export LANG=C
export ALT_BOOTDIR=/home/javon/jdk/jdk1..0_45 #允许自动下载依赖包
export ALLOW_DOWNLOADS=true #使用预编译头文件,以提升便以速度
export USE_PRECOMPILED_HEADER=true #要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOSTPOT=true
export BUILD_JDK=true #要编译的版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug #避免javaws和浏览器Java插件等的build
BUILD_DEPLOY=false #不build安装包
BUILD_INSTALL=false #设置存放编译结果的目录
export ALT_OUTPUTDIR=/home/javon/jdk/openjdk--src/build unset CLASSPATH
unset JAVA_HOME
make sanity
make >& | tee $ALT_OUTPUTDIR/build.log

说明:ALT_BOOTDIR为Bootstrap JDK安装目录。
5. 修改Open JDK源码中的一个文件,<OpenJDK源码目录>/jdk/src/share/classes/java/util/CurrencyData.properties,要做的是把文件中以下的时间改为10年内的一个时间:

AZ=AZM;-----;AZN
MZ=MZM;-----;MZN
RO=ROL;-----;RON
TR=TRL;-----;TRY
VE=VEB;-----;VEF

6. 执行编译脚本

#cd <OpenJDK源码目录>
cd /home/javon/jdk/openjdk/
sh build.sh

7. 编译完成后,ALT_OUTPUTDIR路径下得到如下目录,

其中,j2sdk-image目录下存放的就是整个JDK的完整编译结果。我们进入整个目录下,键入“java -version”,会得到如下结果:

编译过程中遇到的问题

1. 操作系统版本不支持,This OS is not supported。

解决方法:修改文件<OpenJDK源码目录>/hotspot/make/linux/MakeFile,SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%后添加4%,修改后内容为:

SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% % %

Linux环境下编译JDK的更多相关文章

  1. 在Linux 环境下搭建 JDK 和 Tomcat

      在Linux 环境下搭建 JDK 和 Tomcat 参考地址:http://www.cnblogs.com/liulinghua90/p/4661424.html   [JDK安装] 1.首先下载 ...

  2. Java入门——在Linux环境下安装JDK并配置环境变量

    Java入门——在Linux环境下安装JDK并配置环境变量 摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置. 使用已下载的压缩包进行安装 下载并解压 在Java的官网 ...

  3. Linux环境下编译并执行ava helloworld程序

    原文:http://blog.lupaworld.com/home-space-uid-24466-do-blog-id-2578.html 已经学会怎样在Windows下怎样编辑,编译和运行Java ...

  4. Linux环境下配置JDK,java环境

    1.查看Linux自带的JDK是否已安装 # java -version 2. 查看JDK信息 # rpm -qa | grep java 显示: java-x.x.x-gcj-compat-x.x. ...

  5. 在虚拟机linux环境下编译windows版adb fastboot

    原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android ...

  6. Linux基础:Linux环境下安装JDK

    title: Linux基础:JDK的及环境变量配置 author: Enjoyitlife.top date: 2019-10-09 20:50:36 tags: Linux JDK categor ...

  7. Linux环境下安装JDK并配置环境变量

    首先查看是否已经安装了JDK并配置环境变量. [root@dhcc_plat opt]# java -version -bash: java: command not found [root@dhcc ...

  8. Linux环境下搭建JDK环境

    yum安装 傻瓜式安装,记录几条命令 1.查看可安装的jdk版本(需要安装yum): yum -y list java* 2.安装jdk yum install -y java-1.8.0-openj ...

  9. 在linux环境下安装JDK并配置环境变量

    操作步骤如下 1.根据linux服务器的系统版本在官网下载相应linux版本JDK(32位下载x86,64位下载x64) 2.通过远程连接工具(filezilla)将下载好的JDK上传至linux服务 ...

随机推荐

  1. Docker工具

    虚拟化 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源, 如服务器.网络.内存及存储等,予以抽象.转换后呈现出来, 打破实体结构间的 ...

  2. python3爬取”理财大视野”中的股票,并分别写入txt、excel和mysql

    需求:爬取“理财大视野”网站的排名.代码.名称.市净率.市盈率等信息,并分别写入txt.excel和mysql 环境:python3.6.5 网站:http://www.dashiyetouzi.co ...

  3. 最长回文子串——manacher

    最长回文子串--Manacher 算法 (原版的博主的代码都是用py写的,这里改成c++) c++ 算法 字符串处理 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度. 如果一 ...

  4. js实现获取当前时间是本月第几周的方法

    这篇文章主要介绍了js实现获取当前时间是本月第几周的方法,涉及javascript针对日期及时间的相关操作技巧,非常简单实用,需要的朋友可以参考下. 本文实例讲述了js实现获取当前时间是本月第几周的方 ...

  5. 前端 五——ajax

    内容概要: 1.ajax的特点 2.基于JS的ajax 3.基于jQuery的ajax 1.特点: 局部刷新 异步传送(交互) 缺点: (1)无形中向服务器发送的请求次数太多,导致服务器压力增大. ( ...

  6. matlab 初级画图

    matlab 初级画图 1.plot() plot(x,y)   plots each vector pairs (x,y) 画图函数画出每个点   每组变量 plot (y)   plots eac ...

  7. LiveScript 流程控制、循环以及列表推导式

    The LiveScript Book     The LiveScript Book Generators and Yield 你可以在你的 LiveScript 代码中使用 Ecmascript ...

  8. 2018天梯赛第一次训练题解和ac代码

    随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS     Memory Limit: ...

  9. csa Round #70

    Digit Holes Time limit: 1000 msMemory limit: 256 MB   When writing digits, some of them are consider ...

  10. [密钥权限过大错误]ssh “permissions are too open” error

    I had a problem with my mac where I couldn't save any kind of file on the disk anymore. I had to reb ...