Mac_OS_Sierra_10.12.6编译OpenJDK9
编译环境以及依赖
macOS:Sierra,10.12.6
处理器:2.6 GHz Intel Core i7
内存:16 GB 2133 MHz LPDDR3
Command Line Tools (macOS Sierra version 10.12) for XCode: Version 9.2
Boot JDK: jdk1.8.0_131
安装Homebrew
homebrew是macOS 缺失的软件包管理器。安装指南参考官方网站。
安装Mercurial
$ brew install mercurial 安装mercurial,它是OpenJDK的版本管理工具,只是为了下载OpenJDK的源代码。如果实在不想安装这个奇怪的工具,可自行在github上找个人的OpenJDK fork repo,然后就可以使用Git工具了。
安装freetype
$ brew install freetype 我在编译的过程中没有进行这一步,如果遇到缺少freetype的错误可使用homebrew安装。
编译OpenJDK9
- 获取源代码
shell $ hg clone http://hg.openjdk.java.net/jdk9/jdk9 OpenJDK9 $ cd OpenJDK9 $ bash ./get_source.sh
- 编译配置
bash bash configure --disable-warnings-as-errors --with-boot-jdk=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/
--disable-warnings-as-errors:禁用将警告当做错误,避免因为警告而中断编译
--with-boot-jdk: 指定Boot JDK的位置
- 编译OpenJDK
make all
但是遇到了两个问题,Google搜索后修改之后完成编译
shell error: ordered comparison between pointer and zero ('char *' and 'int') if (base() > 0) { ~~~~~~ ^ ~ 1 error generated.shell error: ordered comparison between pointer and zero ('address' (aka 'unsigned char *') and 'int') if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops.两个是同等类型的错误,需要找到该文件,将表达式进行修改。
```c++
if (base() > 0) { ==> if (base() != NULL) {if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops. ==> if (Universe::narrow_oop_base() != NULL) { // Implies UseCompressedOops.
```修改完成之后重新编译即可,该问题在使用Command Line Tools (macOS Sierra version 10.12) for XCode: Version 9.2的时候出现。参考资料:Xcode 9.0 (9A235) problems
打印编译后Java的版本
shell build/macosx-x86_64-normal-server-release/jdk/bin/java -version
shell openjdk version "9-internal" OpenJDK Runtime Environment (build 9-internal+0-adhoc.xiaoweiliu.jdk9) OpenJDK 64-Bit Server VM (build 9-internal+0-adhoc.xiaoweiliu.jdk9, mixed mode)
Mac_OS_Sierra_10.12.6编译OpenJDK9的更多相关文章
- 对<< ubuntu 12.04编译安装linux-3.6.10内核笔记>>的修正
前题: 在前几个月的时候,写了一篇笔记,说的是kernel compile的事情,当时经验不足,虽说编译过了,但有些地方写的有错误--因为当时的理解是有错误的.今天一一更正,记录如下: 前文笔记链接: ...
- MacOS Sierra10.12.4编译Android7.1.1源代码必须跳的坑
简单介绍 下载Android7.1.1源代码花费了两天,编译整个源代码相同花费了2天,期间遇到无数个坑. 如今编译源代码,一旦中间遇到错误,则要又一次開始. 本文记录编译过程遇到的问题及解决方式,如有 ...
- 在VS13上编译通过的代码放在12上编译-错误:l __dtoui3 referenced in function _event_debug_map_HT_GROW
在VS13上编译通过的代码放在12上编译 遇到错误:l __dtoui3 referenced in function _event_debug_map_HT_GROW 1>------ 已启动 ...
- nginx-1.12.2编译安装指导
nginx-1.12.2编译安装 下载源码包 安装 安装后配置 下载源码包 下载地址:http://nginx.org/en/download.html nginx-1.12.2:http://ngi ...
- ubuntu18.04.2下编译openjdk9源码
最近在看<深入理解Java虚拟机 第二版>这本书,上面有关于自己编译OpenJDK源码的内容.自己根据书里的指示去操作,花了三天的时间,重装了好几次Ubuntu(还不知道快照这个功能,好傻 ...
- busybox-1.12.2编译提示“混合的隐含和普通规则”错误解决
编译环境:CentOs 7.1 Ubuntu 12.0.4 都可以 交叉编译工具:gcc -4.3.2 (博创6410平台) 问题描述:执行make menuconfig命令的时候,提示Makefil ...
- 解决Ubuntun 12.04编译Mesa10.3 WARNING: 'aclocal-1.14' is missing on your system
安 装Mesa时,最后一个错误报“WARNING: 'aclocal-1.14' is missing on your system.”,虽然是个Warning,但是无法进行下一步make,所以必须解 ...
- 【全网首发】使用vs2017+qt5.12.4编译64位debug和release的qgis3.4.9
一.摘要: 搜索网络没有发现一篇文章完整的介绍如何编译qgis3.4.x的debug版本,官方的指导也长时间不再更新. 所以前前后后花了4天搞定qgis的debug编译,并成功运行,废话不多说,直接上 ...
- Ubuntu 12.04 编译bcm93349dcm软件包
1.准备工作操作系统:Ubuntu 12.04 获取bcm93349dcm软件包: bootloader源代码:Bootloader_2_2_0.zip CM源代码:ProdD20_BFC4.4.10 ...
随机推荐
- Django的ModelForm组件
创建类 from django.forms import ModelForm from django.forms import widgets as wd from app01 import mode ...
- Libevent 事件循环(1)
// 事件的dispatch int event_base_loop(struct event_base *base, int flags) { //得到采用的事件模型 epoll/epoll/ ...
- Libevent(2.1.8)中的事件结构和管理
Libevent(2.1.8)中的事件结构体 这里的libevent版本为 2.1.8 . libevent中事件的结构体struct event,定义在event_struct.h 中, 这里我们简 ...
- 在Linux中使用线程
我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下.如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级. 首先说明一下,在Linux编写多线程程序需要包含头文件p ...
- Netty4.0.24.Final 版本中 IdleStateHandler 使用时的局限性
使用Netty在客户端和服务端建立通讯通道,一般来说,一个连接可能很久没有访问,由于各种各样的网络问题导致连接已经失效,客户端再次发送请求时会产生连接异常. 基于这个原因,需要在客户端和服务端之间建立 ...
- scapy安装及SCTP包分析
关于Scapy scapy是一个强大的交互式数据包处理程序(使用python编写).它能够伪造或者解码大量的网络协议数据包,能够发送.捕捉.匹配请求和回复包等.它可以很容易地处理一些典型操作,比如端口 ...
- 大数据学习(1)Hadoop安装
集群架构 Hadoop的安装其实就是HDFS和YARN集群的配置,从下面的架构图可以看出,HDFS的每一个DataNode都需要配置NameNode的位置.同理YARN中的每一个NodeManager ...
- 》》vue
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 【Sqlsever系列】日期和时间
1 概述 本文将集合MSDN简要概述Sqlserver中日期和时间函数. 2 具体内容 2.1 date and time data types 2.2 日期和时间功能 3 参考文献 ...
- this问题
this问题 弹出层是一种很常见的页面显示部件,利用require js的模块化可以使部分功能组件重用性更高.以弹出层为例,探讨关于this的问题 首先来看这样一段代码 Html部分代码 <bo ...