java-编译openJdk

原创 2016年08月30日 15:12:46

软件环境

OS:CentOS 6.5

openJdk:openjdk-7-fcs-src-b147-27_jun_2011.zip

准备工作

下载opendk

解压

unzip openjdk-7-fcs-src-b147-27_jun_2011.zip

安装依赖
# yum -y install gcc gcc-c++ alsa-lib alsa-lib-devel libXrender libXrender-devel libXi-devel libXt-devel libXtst-devel cups cups-devel


下载安装freetype

下载freetype-2.4.0.tar.gz ,

解压 tar -zxvf freetype-2.4.0.tar.gz

解压后 cd  freetype-2.4

执行命令 ./configure && make && make install


安装ant

下载ant  我下的是apache-ant-1.9.7-bin.tar.gz版本

解压 tar -zxvf apache-ant-1.9.7-bin.tar.gz

解压后把ant命令加入bin

# ln -s /usr/local/apache-ant-1.9.7/bin/ant  /usr/bin/ant


安装BootstrapJDK

版本要参照README-builds.html (在openjdk目录下)

我下载的是jdk-6u45-linux-x64.bin版本

下载后 执行 ./jdk-6u45-linux-x64.bin


配置环境变量

编辑文件vi ~/.bash_profile加入以下变量


export LANG=C
export ALT_BOOTDIR=/usr/local/jdk1.6.0_45
export ALT_JDK_IMPORT_PATH=/usr/local/jdk1.6.0_45
export ANT_HOME=/usr/local/apache-ant-1.9.7
export ALT_FREETYPE_HEADERS_PATH=/usr/local/include/freetype2
export ALT_FREETYPE_LIB_PATH=/usr/local/lib
export ALLOW_DOWNLOADS=true
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
unset JAVA_HOME
unset CLASSPATH

使变量生效
# source ~/.bash_profile


测试环境是否健全

进入解压后的openjdk-7-fcs-src-b147-27_jun_2011.zip

cd openjdk

执行 make sanity
如果输出以下内容则表示通过,可以进行编译

Sanity check passed.


编译openjdk

进入解压后的openjdk-7-fcs-src-b147-27_jun_2011.zip

cd openjdk

build:

命令格式:gmake [ARCH_DATA_MODEL=32 or 64] [ALT_OUTPUTDIR=output_directory] [other "ALT_" overrides]

我用的是 gmake ARCH_DATA_MODEL=64

编译失败后清理:make clean


编译成功后会看到

-- Build times ----------
Target debug_build
Start 2016-08-30 15:03:19
End   2016-08-30 15:45:05
00:04:41 corba
00:09:35 hotspot
00:01:39 jaxp
00:01:37 jaxws
00:22:58 jdk
00:01:16 langtools
00:41:46 TOTAL

编译中遇到的问题

Bootstrap jdk版本不对

参照README-builds.html下载正确版本的jdk

Using java runtime at: /opt/jdk1.7.0_04/jre

Error occurred during initialization of VM
Unable to load native library: /opt/jdk1.7.0_04/jre/lib/i386/libjava.so: symbol JVM_SetNativeThreadName, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference
make[4]: *** [product] Error 1
make[4]: Leaving directory `/media/sf_E_DRIVE/learn/java/openjdk/openjdk/build/linux-i586/hotspot/outputdir'
make[3]: *** [generic_build2] Error 2
make[3]: Leaving directory
`/media/sf_E_DRIVE/learn/java/openjdk/openjdk/hotspot/make'
make[2]: *** [product] Error 2
make[2]: Leaving directory `/media/sf_E_DRIVE/learn/java/openjdk/openjdk/hotspot/make'
make[1]: *** [hotspot-build] Error 2
make[1]: Leaving directory `/media/sf_E_DRIVE/learn/java/openjdk/openjdk'

make: *** [build_product_image] Error 2


time is more than 10 years from present

Error: time is more than 10 years from present: 1136059200000
java.lang.RuntimeException: time is more than 10 years from present: 1136059200000
  at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285)
  at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225)
  at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154)

# 解决办法
# 修改CurrencyData.properties(路径:jdk/src/share/classes/java/util/CurrencyData.properties)
修改108行
AZ=AZM;2009-12-31-20-00-00;AZN
修改381行
MZ=MZM;2009-06-30-22-00-00;MZN
修改443行
RO=ROL;2009-06-30-21-00-00;RON
修改535行
TR=TRL;2009-12-31-22-00-00;TRY
修改561行
VE=VEB;2009-01-01-04-00-00;VEF



版权声明:本文为博主原创文章,未经博主允许不得转载。

CentOS7手动编译OpenJDK

1.首先下载一个OpenJDK的zip包,URL路径为: http://hg.openjdk.java.net/jdk7/jdk7/jdk/ 挺不显眼的;左侧有个zip,点一下就会下载下来 2....
  • rongyongfeikai2
  • rongyongfeikai2
  • 2016年04月12日 21:58
  • 1719

Linux环境编译安装OpenJDK

Centos6.5 AMD64位机器 Java的源码是C,C++和Java实现的,所以还需要有一个安装好的java建议选OracleJDK参考文末 安装OracleJDK Linux环境安装卸载JDK...
  • unix21
  • unix21
  • 2016年03月16日 23:05
  • 2402

详解JAVA线程中的那些事

引言 说到Thread大家都很熟悉,我们平常写并发代码的时候都会接触到,那么我们来看看下面这段代码是如何初始化以及执行的呢? public class ThreadDemo { pub...
  • qq_41143507
  • qq_41143507
  • 2017年11月24日 17:38
  • 43

[笔记]Java虚拟机精讲笔记 -- 编译自己OpenJdk

编译OpenJdk下载和配置环境本人使用 ubuntu-12.04.5-alternate-i386.iso下载OpenJdk源代码http://openjdk.java.net/ 直接下载地址:h...
  • mr_zhuqiang
  • mr_zhuqiang
  • 2015年05月23日 22:35
  • 1363

openjdk-7-fcs-src-b147-27_jun_2011.zip

  • 2013年03月04日 17:02
  • 83.18MB
  • 下载

下载open jdk源码

【1】直接下载打包好后的代码 http://download.java.net/openjdk/jdk7/   http://www.java.net/download/openjdk/jdk7/p...
  • scugxl
  • scugxl
  • 2015年02月25日 20:57
  • 4221

HotSpotVM JNI实现浅析

最近想看下HotSpotVM是怎么找到一个native方法的实现的,例如Thread.start0和FileChannelImpl.transferTo0,最后发现是两种不同的方式。...
  • kisimple
  • kisimple
  • 2015年03月13日 15:36
  • 1453

深入理解JVM内幕

每个Java开发者都知道Java字节码是执行在JRE((Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行...
  • zhoudaxia
  • zhoudaxia
  • 2014年05月25日 10:58
  • 37783

openjdk-7编译

一、下载openjdk openjdk7地址:http://download.java.net/openjdk/jdk7/ openjdk-7-fcs-src-b147-27_jun_2011版本:h...
  • qq_16097611
  • qq_16097611
  • 2017年07月21日 11:29
  • 224

ubuntu上编译hotspot遇到的问题

1.内核版本不支持 “*** This OS is not supported:" 'uname -a';
  • my_computer
  • my_computer
  • 2014年07月17日 13:11
  • 1879
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java-编译openJdk
举报原因:
原因补充:

(最多只允许输入30个字)