码迷,mamicode.com
首页 > 系统相关 > 详细

在linux下编译openjdk7

时间:2015-01-01 00:03:30      阅读:409      评论:0      收藏:0      [点我收藏+]

标签:

最近刚开始看《深入理解JAVA虚拟机》这本书。第一章的实践是自己手动编译openjdk7,但书上的步骤都是基于windows的,于是在网上搜了一下linux下编译openjdk的资料: 
http://blog.csdn.net/kindazrael/article/details/7266314 
http://guoh.org/lifelog/2011/05/compile-openjdk-by-yourself/ 
这辆篇文章都说的比较详细。其实,最好的文档是openjdk源码包中的README-builds.html,网上的资料基本是对其的翻译+精简。 

资料已经那么全了,我就不重复了,主要是记录一些自己碰到的问题。 

1. 编译期间会依赖很多其他的包,ubuntu下最简单的方法是sudo apt-get build-dep openjdk-7(文档里些的是sudo aptitude build-dep openjdk-6,但新版的ubuntu貌似已经不自带aptitude,用apt-get会比较方便,另外我把openjdk6改成了openjdk7,编译没出问题,应该两者依赖的包没有什么区别)。这样的话,就不需要挨个下载依赖包编译,也省去了设置一堆环境变量(例如ALT_CUPS_HEADERS_PATH ALT_FREETYPE_LIB_PATH ALT_FREETYPE_HEADERS_PATH)。 

我最终的环境变量设置为: 

Java代码  技术分享
  1. export LANG=C    
  2. export ALT_BOOTDIR=$JAVA_HOME    
  3. export ALLOW_DOWNLOADS=true    
  4. unset CLASSPATH    
  5. unset JAVA_HOME  


以上设置缺一不可。 

2. 另外,如果你的系统版本比较新的话,可能会无法通过hotsopt的系统版本检查,这个时候只需要修改openjdk/hotspot/make/linux下的Makefile文件。注释掉如下几行就OK了。 

Java代码  技术分享
  1. check_os_version:  
  2. #ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)  
  3. #   $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1;  
  4. #endif  



3. 可能会遇到和"javax/sound/jsoundalsa"相关的一个错误,网上搜了一下这个貌似是openjdk的一个bug,有人提供了补丁http://mail.openjdk.java.net/pipermail/build-dev/2012-January/005382.html。只需要修改openjdk/jdk/make/javax/sound/jsoundalsa目录下的Makefile文件,找到 

Java代码  技术分享
  1. LDFLAGS += -lasound  


将其替换成 

Java代码  技术分享
  1. OTHER_LDLIBS += -lasound  


即可。 
也有说换成EXTRA_LIBS的(http://blog.csdn.net/yhmhappy2006/article/details/7281710),没有试过,不知道可不可行。 

Java代码  技术分享
    1. EXTRA_LIBS += -lasound  

在linux下编译openjdk7

标签:

原文地址:http://www.cnblogs.com/super-d2/p/4196820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!