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 ...
随机推荐
- git的CentOS服务端安装和windows客户端的使用
git的CentOS服务端安装和windows客户端的使用 此教程以 搬瓦工vps CentOS 6 x64 的系统为环境,搭建 git 服务端.windows 7 系统为客户端. git客户端 在W ...
- Android破解学习之路(一)——简单的登录破解
最近突然心血如潮开始学了Android破解,初入门,便是将经验记录下来. 准备工作: 1.一个登录简单APP 在我们破解之前,我们需要做一个简单的登录APP,输入相应的账号与密码便是弹出登录成功的对话 ...
- 数据库 E-R模型
数据库 E-R模型被定义被两种模型 "实体模型" AND "关系模型" 1.1 实体模型 如图:这是一个"项目表" Project ...
- 速微共享链的使用步骤和源码分析(UI设计参考)
一.速微共享链引言 速微共享链Service服务是Android四大组件之一,在Android中有着举足重轻的作用.Service服务是工作的UI线程中,当你的应用需要下载一个文件或者播放音乐等长期处 ...
- ExtJs 带参数的MVC
题记:研究使用ext两个星期了,从痛苦中逐渐走向明朗. 展示列表的子列表的数据时需要将当前的数据传给下一个mvc. 比如用户列表,点击一个用户查看该用户的日志列表. 首先是controller,放一个 ...
- HDU 4193 Non-negative Partial Sums(想法题,单调队列)
HDU 4193 题意:给n个数字组成的序列(n <= 10^6).求该序列的循环同构序列中,有多少个序列的随意前i项和均大于或等于0. 思路: 这题看到数据规模认为仅仅能用最多O(nlogn) ...
- 体验CSDN-Markdown
文件夹 文件夹 文本格式化练习 一号标题 1一号标题 二号标题 1 11 2 列表的应用 链接 图片 脚注 表格 序列图 流程图 文本格式化练习: 斜体 斜体的文字 使用鼠标,变成斜体文字 使用键盘C ...
- BestCoder Round #75 King's Cake 模拟&&优化 || gcd
King's Cake Accepts: 967 Submissions: 1572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6553 ...
- 《Javascript_Dom 编程艺术》(第2版)读书笔记
第1章 Javascript 简史 Dom : 平稳退化.渐进增强,以用户为中心的设计 第2章 Javascript 语法 1.程序设计语言分为:解释性(javascript)和编译型(java,C+ ...
- kotlin web开发教程【一】从零搭建kotlin与spring boot开发环境
IDEA中文输入法的智能提示框不会跟随光标的问题 我用的开发工具是IDEA 这个版本的IDEA有一个问题: 就是中文输入法的智能提示框不会跟随光标 解决这个问题的办法很简单,只有在安装目录下把JRE文 ...