0
点赞
收藏
分享

微信扫一扫

ubuntu12.04编译openJDK7


linux内核:uname -r 查看linux内核,我的是 3.11.0-15-generic

1.下载openjdk7源码

a.openJDK7源码地址:http://download.java.net/openjdk/jdk7/

另外openJDK8源码地址:http://download.java.net/openjdk/jdk8/

 

2.安装编译openJDK所需到依赖:

sudo aptitude build-dep openjdk-6 --安装编译openjdk-6所需到环境,里面包含了很多工具

sudo aptitude install openjdk-6-jdk  --安装openjdk,编译openjdk源码中到java部分

 

3.设置编译openJDK的环境变量:

export LANG=C

#设置本机上安装好到openjdk来编译源码,用java -ersion可以查看到本机jdk到版本信息

export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk 

#允许在编译的时候自动进行下载依赖的东西
export ALLOW_DOWNLOADS=true

#使用预编译头文件,不是用这个会编译慢些
export USE_PRECOMPILED_HEADER=true

#设置编译好的openjdk 输出位置
export ALT_OUTPUTDIR=/users/openjdkbuild

#The default hotspot-build is all_product. Setting DEBUG_NAME would change the target.

export DEBUG_NAME=debug

unset JAVA_HOME
unset CLASSPATH

 

4.使用cd命令进入openjdk源码目录下

 

5.make sanity 测试一下

如果出现:Sanity check passed.则表示测试编译通过了,不过也别开心得太早,真正make的时候不保证一定没问题

 

6.make

 

FQA:

1. ERROR: error: "__LEAF" redefined [-Werror]

这个是已知的bug(http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev /a6eef545f1a2), 在hopspot下打入该patch(http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot /raw-rev/a6eef545f1a2)即可

或者:从http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot /raw-rev/a6eef545f1a2 这个页面下载zip替换openjdk7源码中到hotspot文件夹(注意将下载的文件夹名改为hotspot)

2. ERROR: echo "*** This OS is not supported:" 'uname -a'; exit 1;
这是由于内核版本太高了,两种方式解决:
方法一:



lichengwu@s4:~/bin$ uname -r
#查看当前的内核版本:
3.2.0-20-generic
修改文件/home/thebye85/jdk7/hotspot/make/linux/Makefile
#在这行最后加上当前的内核版本3.2%,如下:
lichengwu@s4:~/bin$ SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 3.2%



方法二:



gedit hotspot/make/linux/Makefile



注释掉下面代码:
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

3.sound错误

修改jdk/make/javax/sound/jsoundalsa/下的Makefile文件,将



LDFLAGS += -lasound



改成
EXTRA_LIBS += -lasound
否则编译出错

 

4.make[5]: *** [/home/ubuntu/openjdkbuild/lib/i386/libjsoundalsa.so] Error 1
解决:(注意openjdkbuild是编译的jdk输出路径)



ln -s lib/i386/libjsound.so lib/i386/libjsoundalsa.so



如果ln不行 就用cp

举报

相关推荐

0 条评论