zoukankan      html  css  js  c++  java
  • 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

    1. 获取源代码

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

    2. 编译配置

      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的位置

    3. 编译OpenJDK

      make all

      但是遇到了两个问题,Google搜索后修改之后完成编译

      1. error: ordered comparison between pointer and zero ('char *' and 'int') 
          if (base() > 0) { 
              ~~~~~~ ^ ~ 
        1 error generated. 
        
      2. error: ordered comparison between pointer and zero ('address' (aka 'unsigned char *') and 'int') 
          if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops.
        

        两个是同等类型的错误,需要找到该文件,将表达式进行修改。
        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

    4. 打印编译后Java的版本

      build/macosx-x86_64-normal-server-release/jdk/bin/java -version
      
      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)
      ```   ​
  • 相关阅读:
    maven的pom.xml文件详细说明
    python 给视频添加马赛克
    cv2.VideoCapture 图像旋转问题
    三分钟理解知识蒸馏
    深度学习、机器学习常见概念及理解(持续更新)
    python用直方图规定化实现图像风格转换
    1分钟理解人体姿态估计与行为识别
    数据清洗要点
    3分钟理解NMS非极大值抑制
    python用pandas遍历csv文件
  • 原文地址:https://www.cnblogs.com/weixliu/p/8195996.html
Copyright © 2011-2022 走看看