1.6 实战:自己编译JDK 1.6.2 系统需求

1.6 实战:自己编译JDK 1.6.2 系统需求

如果可能,笔者建议尽量在Linux或者MacOS上构建OpenJDK,这两个系统在准备构建工具链和依 赖项上要比在Windows或Solaris平台上要容易许多,本篇实践中笔者将以Ubuntu 18.04 LTS为平台进行 构建。如果读者确实有在Windows平台上完成编译的需求,或需要编译较老版本的OpenJDK,可参考 本书附录A,这篇附录是本书第1版中介绍如何在Windows下编译OpenJDK 6的实践例子,虽然里面的 部分内容已经过时了(例如安装Plug部分),但对Windows上构建安装环境和较老版本的OpenJDK编 译还是有一定参考意义的,所以笔者并没有把它删除掉,而是挪到附录之中。

无论在什么平台下进行编译,都建议读者认真阅读一遍源码中的doc/building.html文档,编译过程 中需要注意的细节较多,如果读者是第一次编译OpenJDK,那有可能会在一些小问题上耗费许多时 间。在本次编译中采用的是64位操作系统,默认参数下编译出来的也是64位的OpenJDK,如果需要编 译32位版本,笔者同样推荐在64位的操作系统上进行,理由是编译过程可以使用更大内存(32位系统 受4G内存限制),通过编译参数(–with-target-bits=32)来指定需要生成32位编译结果即可。在官方 文档上要求编译OpenJDK至少需要2~4GB的内存空间(CPU核心数越多,需要的内存越大),而且 至少要6~8GB的空闲磁盘空间,不要看OpenJDK源码的大小只有不到600MB,要完成编译,过程中 会产生大量的中间文件,并且编译出不同优化级别(Product、FastDebug、SlowDebug)的HotSpot虚 拟机可能要重复生成这些中间文件,这都会占用大量磁盘空间。

对系统环境的最后一点建议是,所有的文件,包括源码和依赖项目,都不要放在包含中文的目录 里面,这样做不是一定会产生不可解决的问题,只是没有必要给自己找麻烦。