Linux环境下编译JDK
环境准备
- 操作系统,ubuntu-14.04.6-desktop-amd64.iso,下载地址:http://59.80.44.100/releases.ubuntu.com/14.04/ubuntu-14.04.6-desktop-amd64.iso。
- 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
- 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的更多相关文章
- 在Linux 环境下搭建 JDK 和 Tomcat
在Linux 环境下搭建 JDK 和 Tomcat 参考地址:http://www.cnblogs.com/liulinghua90/p/4661424.html [JDK安装] 1.首先下载 ...
- Java入门——在Linux环境下安装JDK并配置环境变量
Java入门——在Linux环境下安装JDK并配置环境变量 摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置. 使用已下载的压缩包进行安装 下载并解压 在Java的官网 ...
- Linux环境下编译并执行ava helloworld程序
原文:http://blog.lupaworld.com/home-space-uid-24466-do-blog-id-2578.html 已经学会怎样在Windows下怎样编辑,编译和运行Java ...
- Linux环境下配置JDK,java环境
1.查看Linux自带的JDK是否已安装 # java -version 2. 查看JDK信息 # rpm -qa | grep java 显示: java-x.x.x-gcj-compat-x.x. ...
- 在虚拟机linux环境下编译windows版adb fastboot
原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android ...
- Linux基础:Linux环境下安装JDK
title: Linux基础:JDK的及环境变量配置 author: Enjoyitlife.top date: 2019-10-09 20:50:36 tags: Linux JDK categor ...
- Linux环境下安装JDK并配置环境变量
首先查看是否已经安装了JDK并配置环境变量. [root@dhcc_plat opt]# java -version -bash: java: command not found [root@dhcc ...
- Linux环境下搭建JDK环境
yum安装 傻瓜式安装,记录几条命令 1.查看可安装的jdk版本(需要安装yum): yum -y list java* 2.安装jdk yum install -y java-1.8.0-openj ...
- 在linux环境下安装JDK并配置环境变量
操作步骤如下 1.根据linux服务器的系统版本在官网下载相应linux版本JDK(32位下载x86,64位下载x64) 2.通过远程连接工具(filezilla)将下载好的JDK上传至linux服务 ...
随机推荐
- Leetcode(204) Count Primes
题目 Description: Count the number of prime numbers less than a non-negative number, n. Credits: Speci ...
- MyEclipse访问MSSQL2008数据库
首先到微软网站http://www.microsoft.com/zh-cn/download/details.aspx?id=21599下载sqljdbc_3.0.1301.101_chs.exe, ...
- vagrant中的precise64使用静态的能和host所在局域网的其他机器互相通信
vagrant中的precise64使用静态的能和host所在局域网的其他机器互相通信
- matlab callback 数据传递
M文件中内的每个Callback都可以视为一个独立的可执行的接口,因此,任一个Callback触发后所执行的运算值若要在其他Callback中使用,就无法与MATLAB工作空间内的变量继续执行操作,也 ...
- 《小团团团队》【Alpha】Scrum Meeting 3
项目 内容 课程名 软件工程 作业链接地址 Github地址 团队名称 小团团团队 具体目标 1.掌握软件测试基础技术:2.学习迭代式增量软件开发过程(Scrum) 1.1前言 第三天 时间: 201 ...
- navicat for mysql 在win7下设置定时计划之导出数据处理
navicat for mysql 在win7下设置定时计划之导出数据处理 博客分类: mysql navitcatmysql定时任务导出 前两篇记录了,navicat for mysql计划的入门 ...
- edge浏览器识别ip地址为手机号的解决办法
edge浏览器识别ip地址为手机号的解决办法 今天突然发现类似101.231.70.242的ip地址会在edge浏览器里面识别为可点击的链接,后来看了一下,原因就是被识别为手机号了,因为我发现点击的时 ...
- kruskal - 倍增 - 并查集 - Luogu 1967 货车运输
P1967 货车运输 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过 ...
- 使用phppgadmin 遇到的小问题
无法登录,显示错误消息如下: Error:login disallowed for security reasons. 解决方法: 修改conf/config.inc.php文件中的extra_log ...
- curl保存图片
$url = 'http://p1.qhimg.com/t013dfc89f8a039122c.jpg?size=690x460'; function http_get_data($url) { $c ...