ubutn 16.04 编译openJdk7及问题解决方法

来源:互联网 发布:淘宝店怎么过户 编辑:程序博客网 时间:2024/06/15 02:29

1、下载并安装依赖软件:

安装gcc、g++、make等:sudo apt-get install build-essential

安装ant1.7以上: sudo apt-get install ant

安装XRender:sudo apt-get install libxrender-dev

sudo apt-get install xorg-dev

安装alsa

sudo apt-get install libasound2-dev

Cups

sudo apt-get install libcups2-dev

安装零碎的工具包:sudo apt-get install gawk zip libxtst-dev libxi-dev libxt-dev

2、安装bootstrap jdk (1.6.0.45),解压openJdk7u40, 版本最好不要比openJdk高,否则会报一堆莫名其妙的错。

在/etc/profile 文件下追加配置信息:

JAVA_HOME=/usr/local/java/jdk1.6.0_45
export JRE_HOME=/usr/local/java/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

3、准备编译代码 脚本

在openJdk根目录创建build.sh脚本:

unset CLASSPATH
unset JAVA_HOME

#设置语言
export LANG=C  (若加入到/etc/profile中则会影响系统语言,并会出现打不开终端等问题,所以不建议将编译代码放入其中)
export ALT_BOOTDIR=/usr/local/java/jdk1.6.0_45

export ALT_JDK_IMPORT_PATH=/usr/local/java/jdk1.6.0_45
#允许自动下载依赖包
export ALLOW_DOWNLOADS=true
#并行编译的线程数,设置为和CPU内核数量一直即可
export HOTSPOT_BUILD_JOBS=4
export ALT_PARALLEL_COMPILE_JOBS=4
#使用预编译头文件,不加这个编译会更慢
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
#把它设置为FALSE可以避免javaws和浏览器Java插件之类的部分build
BUILD_DEPLOY=false
#把它设置为false就不会build出安装包。因为安装包里有一些奇怪的依赖
#但即便不build出它也已经得到完整的JDK镜像,所以还是不用build它
BUILD_INSTALL=false
#存放编译结果
export ALT_OUTPUTDIR=/usr/local/java/openJdkBuild
make sanity

#make 2>&1 | tee $ALT_OUTPUTDIR/build.log

3、执行脚本,通过则注释“make sanity”,并到4。

4、去掉注释make 2>&1 | tee $ALT_OUTPUTDIR/build.log,重新执行脚本。

1.ERROR: You do not have access to valid Cups header files.
需要安装cpus的dev包
sudo apt-get install libcups2-dev
2.ERROR: The version of ant being used is older than the required version of '1.7.1'. The version of ant found was ''.
这说明没有装ant
sudo apt-get install ant
3. ERROR: FreeType version 2.3.0 or higher is required.


安装freetype的dev包
sudo apt-get install libfreetype6-dev
4. ERROR: You seem to not have installed ALSA 0.9.1 or higher.
不需要从ALSA官网下载alsa-dev和alsa-drive, ubuntu提供包的
sudo apt-get install libasound2-dev
5. ERROR: echo "*** This OS is not supported:" 'uname -a'; exit 1;
很奇怪的错误,anyway,注释掉hotspot/make/linux/Makefile里面的checkOS

check_os_version:
#ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
# $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;
#endif

或者 添加版本4.4%

6、/usr/bin/gawk: not found ,gawk没安装成功:sudo apt-get install gawk

7、    < ../../../src/share/classes/java/util/CurrencyData.properties
Error: time is more than 10 years from present: 1136059200000

解决:将/usr/local/java/openjdk/jdk/src/share/classes/java/util/CurrencyData.properties文件中以下时间改成10年以内,然后在重新执行脚本。

AZ=AZM;2005-12-31-20-00-00;AZN


MZ=MZM;2006-06-30-22-00-00;MZN

RO=ROL;2005-06-30-21-00-00;RON


TR=TRL;2004-12-31-22-00-00;TRY

VE=VEB;2008-01-01-04-00-00;VEF





0 0
原创粉丝点击