环境准备

  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. 树莓派开发板入门学习笔记2:[转]树莓派系统在VM中能做什么

    问"树莓派系统在VM中能做什么"不如问"树莓派能做什么":(参考:树莓派实验室) 普通难度的DIY 较高难度的DIY 用树莓派打造一个家庭影院 给树莓派安装摄像 ...

  2. AND和OR

    AND和OR用于组合多个选择条件,即用于组合where之中的多个条件

  3. virtual function c++

    之前一直不明白为什么要用虚函数,我只知道这样的规则, Base b = new derived(); b->do(); 调用的是子类的do(): virtue class只是一个虚拟的,调用的是 ...

  4. I love you

    while(true) { printf("I love you"); } 字母解析 I-Inject--投入 投入,这个投入有很多概念,有对自己所爱的人,投入自己所有的感情,让你 ...

  5. 不可取代的网站开发工具---------dreamweaver

    现在web开发的工具越来越多,sublime text,webstorm等web开发工具日益崛起,一直威胁着当年网页三剑客之一的dreamweaver工具的地位,然而dreamweaver却是无法取代 ...

  6. 在线安装ipa,超链接下载ipa

    在线安装ipa包其实是OTA实现,先粘一下OTA解释 OTA OTA即Over-the-Air,简单来说就是通过无线的方式发送指令给设备,具体针对iOS的设备,比如iphone .ipad等,让开发者 ...

  7. python-网络编程-02

    [1] server端 首先我们看下一个最简单http服务端 import socket def handle_request(client): buf = client.recv(1024) cli ...

  8. perl第三章 列表和数组

    访问数组中的元素    $fred[0]   $fred[1] $number=2.75; print $fred[$number-1]  结果就是print $fred[1] 特殊的数组索引1.对索 ...

  9. 02 Java 的基本类型

    Java 的基本类型 Java 包括了八种基本类型,明细如下: Java 的基本类型都有对应的值域和默认值.byte,short,int,long,float以及double的值域依次扩大,前面的值域 ...

  10. VirtualBox 安装XP虚拟机, 安装DB2

    个人随笔记录,也许说的不太清楚. 1. 用google搜索VirtualBox, 找到下载地址,下载,我的是win7,下载64bit的. 2. 下载后,安装VBox软件,这个没遇到问题. 3. 因为我 ...