Mac OpenJDK9 编译

一、编译前一些必要的安装

1、macOS不可或缺的套件管理器 - Homebrew安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、openjdk代码由hg管理,因此需要安装mercurial

$ brew install mercurial

3、openjdk代码由hg管理,因此需要安装mercurial

$ brew install mercurial

若失败,则:

$ sudo brew link mercurial

4、安装ccache提高编译速度

$ brew install ccache

5、安装freetype(编译时需要)

$ brew install freetype

二、编译过程

1、源码获取

$ hg clone http://hg.openjdk.java.net/jdk9/jdk9    openJdkPath
$cd openJdkPath
$ bash ./get_source.sh

2、编译配置

$ ./configure --with-target-bits=64 --with-freetype=/usr/local/Cellar/freetype/2.10.0 --enable-ccache --with-jvm-variants=server,client --with-boot-jdk-jvmargs="-Xlint:deprecation -Xlint:unchecked" --disable-zip-debug-info --disable-warnings-as-errors --with-debug-level=slowdebug 2>&1 | tee configure_mac_x64.log

编译配制简介

编译参数简介:
--with-target-bits:设置32位/64位编译
--with-freetype:设置freetype路径
--enable-ccache:设置启用ccache
--with-jvm-variants=client,server:为了保证兼容性,编译时JVM的Client和Server都会被编译
--with-boot-jdk-jvmargs:提供运行Bootstrap JDK所需要的JVM参数
--disable-zip-debug-info:禁用zip调试信息
--disable-warnings-as-errors:禁用将警告当做错误,避免因为警告而中断编译
--with-debug-level:设置调试等级
2>&1 | tee configure_mac_x64.log:将错误信息重定向至标准输出,并输出到configure_mac_x64.log

a、可能错误1

-bash: ./configure: Permission denied

在./configure前加上bash, bash ./configure --with-target-bits=64 --with-freetype=/usr/local/Cellar/freetype/2.10.0 --enable-ccache --with-jvm-variants=server,client --with-boot-jdk-jvmargs="-Xlint:deprecation -Xlint:unchecked" --disable-zip-debug-info --disable-warnings-as-errors --with-debug-level=slowdebug 2>&1 | tee configure_mac_x64.log

b、可能错误2

Can not find or use freetype at location given by --with-freetype

--with-freetype=/usr/local/Cellar/freetype/2.10.0配置项中,版本2.10.0和你本地的freetype版本不一样
$ cd /usr/local/Cellar/freetype
看下你本地的版本,进行对应替换

c、编译配置成功

Mac OpenJDK9 编译_第1张图片
image.png

3、编译

$ export LANG=C
$ make all LOG=debug  2>&1 | tee make_mac_x64.log

a、编译报错

Mac OpenJDK9 编译_第2张图片
image.png

google一下,这个错误是 XCode 版本不一致造成的,官网文档上说 Mac 下 JDK 9 的代码是用 XCode 8.3.2 和 --disable-warnings-as-errors 编译成功的 [官网参考 ]。

改下这几个文件报错地方的代码就好了, 官网参考 , github参考 。

编译完成结果

Finished building target 'all' in configuration 'macosx-x86_64-normal-serverANDclient-slowdebug'

4、测试

localhost:openJDK wangteng$ cd build/macosx-x86_64-normal-serverANDclient-slowdebug/jdk/bin/
localhost:bin wangteng$ ./java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (slowdebug build 9-internal+0-adhoc.wangteng.openJDK)
OpenJDK 64-Bit Server VM (slowdebug build 9-internal+0-adhoc.wangteng.openJDK, mixed mode)

你可能感兴趣的:(Mac OpenJDK9 编译)