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
- ubutn 16.04 编译openJdk7及问题解决方法
- ubuntu 16.04 64 编译 openjdk7
- Windows下编译OpenJDK7
- Ubuntu 下编译 openJDK7
- fedora15 编译openjdk7
- CentOS6.5编译openjdk7
- ubuntu10.04编译openjdk7
- openjdk7的编译
- Ubuntu12编译openjdk7
- ubuntu下编译openjdk7
- Mac编译OpenJDK7
- Linux下编译OpenJDK7
- Centos7 下编译openjdk7
- 自己动手编译openjdk7
- ubuntu14 编译 openjdk7
- ubuntu14.04编译openjdk7
- Centos6.5编译openjdk7
- Ubuntu16.04 编译 OpenJDK7
- 得分
- mac terminal下无法使用 at 命令 - unix/linux
- 剑指Offer面试题32(Java版):从1到n整数中1出现的次数
- java中equals和==的区别
- 数据库update和alter之间的区别
- ubutn 16.04 编译openJdk7及问题解决方法
- PAT 1013. Battle Over Cities
- 分子量
- 常用函数-trim()
- 深入探索C++对象模型之虚继承
- 天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?
- ubuntu16.04安装caffe详解
- 剑指Offer 8题 旋转数组中的最小数字 Java版
- ServletContext,ActionContext,ServletActionContext的区别