标签:
最近刚开始看《深入理解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)。
我最终的环境变量设置为:
以上设置缺一不可。
2. 另外,如果你的系统版本比较新的话,可能会无法通过hotsopt的系统版本检查,这个时候只需要修改openjdk/hotspot/make/linux下的Makefile文件。注释掉如下几行就OK了。
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文件,找到
将其替换成
即可。
也有说换成EXTRA_LIBS的(http://blog.csdn.net/yhmhappy2006/article/details/7281710),没有试过,不知道可不可行。
标签:
原文地址:http://www.cnblogs.com/super-d2/p/4196820.html