本文共 4940 字,大约阅读时间需要 16 分钟。
译者:bobwenx@gmail.com
请注意,因为所需下载的VM镜像文件高达数GB, 请在稳定的网络环境中进行下载。如果有可能,请使用支持断点续传的下载管理器。
MacOS 用户: 请使用 来解压缩下载后的文件。
下载后的 .OVA 与 .OVF 文件可以使用VirtualBox进行装载(Import Appliance…)
这些VM镜像包含了OpenJDK 8 与 OpenJDK 9 相关的源码和编译环境.
运行这些VM镜像的最低配置需求:
该VM中已包含一个基于Eclipse的 OpenJDK 编译环境:
该VM中已包含一个基于IntelliJ的 OpenJDK 编译环境:
该VM中已包含一个基于Eclipse的 OpenJDK 编译环境:
该VM中已包含一个基于IntelliJ的 OpenJDK 编译环境:
如果你已经下载了设置后的VM镜像,你可以:
这里简化地描述如何设置一个用于编译OpenJDK的标准VM
从下载 Vagrant (1.7.2或更高版本)。
下载完成后,请执行如下命令:
# Clone the adopt-openjdk-kiss-vagrant repo$ git clone git@github.com:neomatrix369/adopt-openjdk-kiss-vagrant.git# Change to a folder to create the Vagrantfile$ cd adopt-openjdk-kiss-vagrant.git$ vagrant init# Start up the machine$ vagrant up# ssh into the VM$ vagrant ssh# in the ssh shell# Mapping in place: /vagrant/scripts/ ==> [currentfolder]/scripts
请注意这里将 当前目录/scripts
映射到了VM中的 /vagrant/scripts/
目录. 之后的镜像构建过程中都需要在scripts目录中执行各种脚本。在完成上诉步骤后,你便已成功构建了一个VM镜像。此时你可以使用 项目提供的可执行脚本来设置编译VM. 详细步骤可以参考该项目的 .
请注意:创建VM镜像大致需要下载 377MB 数据,如果你的网速不佳,请下载事先编译好的VM镜像。使用编译VM,从头开始编译OpenJDK 9 大概需要1个小时(MacBook pro 2013, 16GB内存, SSD磁盘).
这里描述上述快速指南中涉及到的技术细节。 这里的文档描述中,所有标注(*)的步骤都是必须执行的,所有粗体章节将会提供详细解释或可选配置项。所有以($)开头的命令行均代表需要在Vagrant VM 中执行。
至目前为止(2015/01/18),在Mac上测试通过的软件版本为:
当Vagrant安装完成后,可以从Ubuntu仓库从下载VM镜像(377MB):
vagrant box add ubuntu-14.10-amd64 https://cloud-images.ubuntu.com/vagrant/utopic/current/utopic-server-cloudimg-amd64-vagrant-disk1.box;
下载完成后,可使用Virtual Box 装载并启动镜像。
当VM依赖设置完成并且成功启动后,下一步则需要更新OpenJDK 9 源码:
$ vagrant ssh $ sh /vagrant/scripts/source-share-with-host.sh
$ vagrant ssh $ cd /vagrant/sources/jdk9 ; $ bash get_source.sh ; $ bash configure; or $ bash configure --disable-warnings-as-errors; $ make clean images ;$ make test ;
此外,也可以使用该 提供的脚本来完成上述工作.
本节描述如何在宿主机器上使用IDE访问虚拟机中的Java源码。当设置完成后,你可以在自己熟悉的IDE(IntelliJ/Eclipse)中编辑源码,当编辑完成后再切换到虚拟机中执行JDK Build。
本节所述步骤均在 Mac OSX 10.10 + VirtualBox 4.3.20 上使用VM 镜像(Ubuntu_12.04_OpenJDK_dev_1) 通过测试.
理想情况下,VirtualBox 就自带了文件夹共享功能,但是该共享方式无法与OpenJDK 编译系统完美工作, 特别是C++预编译头文件的处理上.目前为止,我们使用Samba方式来在宿主机和VM之间共享文件, 如下所述:
sudo gedit /etc/samba/smb.conf
找到[homes] 小节,将下面的几行取消注释:
[homes] comment = Home Directories browseable = yes writable = yes
重启Samba服务:
sudo restart smbd
将虚拟机的子网设置为与宿主机一致, 你可以在宿主机上通过ifconfig
命令(windows为ipconfig
)来查看子网地址. 这里以200.200.0.xxx
为例, 使用一个未被占用的地址200.200.0.129
:
200.200.0.129
255.255.255.0
200.200.0.90
200.200.0.90
可以在宿主机上通过ping
来测试网络是否设置正确:
ping 200.200.0.129
Windows 宿主机, 使用Explorer 映射地址: \200.200.0.129\OpenJDK
Mac 宿主机, 在Finder中使用CMD-K 连接地址: smb://200.200.0.129/openjdk
可以参见这两篇文章进行设置:
Ubuntu 12.04 沙盒镜像是一个基于, 供OpenJDK 8 运行和测试的Puppet 开发环境.
通过使用Vagrant, 你可以快速上手OpenJDK的编译过程.
为了使用改环境,你必须安装如下软件:
获取puppet vm 配置
git clone https://github.com/soujava/adoptjdk-puppet-vm.git
Initial Startup
在adoptjdk-puppet-vm
目录下,执行如下脚本来启动Puppet 沙盒环境:
$ vagrant up
Puppet 会自动安装Mercurial和OpenJDK. 其克隆 OpenJDK 8
项目, 执行 get_source.sh
以下载所有模块源码,之后执行 ‘bash configure’ 保证编译环境配置正确. 最后执行 make images
来编译JDK 8 分发镜像.
注意,该过程可能会持续 50分钟左右.(测试机: MacPro 2014 250GB SSD 16GB RAM).
如果一切执行顺利,你将会看到如下日志输出:
==> default: ## Finished images (build time 00:00:49)==> default: ----- Build times -------==> default: Start 2015-05-01 20:04:30==> default: End 2015-05-01 20:51:58==> default: 00:00:42 corba==> default: 00:00:53 demos==> default: 00:34:31 hotspot==> default: 00:00:49 images==> default: 00:00:26 jaxp==> default: 00:00:38 jaxws==> default: 00:08:28 jdk==> default: 00:00:49 langtools==> default: 00:00:12 nashorn==> default: 00:47:28 TOTAL==> default: -------------------------==> default: Finished building OpenJDK for target 'images'
转载地址:http://yybbl.baihongyu.com/