前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >优雅地在Mac OS Catalina下 编译 Open JDK 13

优雅地在Mac OS Catalina下 编译 Open JDK 13

原创
作者头像
JavaEdge
修改2019-10-18 10:07:38
1.6K0
修改2019-10-18 10:07:38
举报
文章被收录于专栏:JavaEdgeJavaEdge

1 系统环境

Xcode Oracle JDK: 13

先确保系统已安装freetype和ccache

  • freetype: 2.9
  • ccache: 3.3.5
代码语言:javascript
复制
$ brew install freetype ccache

2 下载源码

通过Mercurial代码管理版本管理工具从Repository中直接获取源码(Repository为http://hg.openjdk.java.net)

3 自动检测依赖

进入解压后的文件夹,然后运行bash ./configure。这是一项检测所需要的依赖是否安装好了的脚本。只需要根据其提供的错误提示,将相应错误修改完成即可。

4 配置参数

参数说明

代码语言:javascript
复制
--with-debug-level=slowdebug 启用slowdebug级别调试
--enable-dtrace 启用dtrace
--with-jvm-variants=server 编译server类型JVM
--with-target-bits=64 指定JVM为64位
--enable-ccache 启用ccache,加快编译
--with-num-cores=8 编译使用CPU核心数
--with-memory-size=8000 编译使用内存
--disable-warnings-as-errors 忽略警告
代码语言:javascript
复制
bash configure 
--with-debug-level=slowdebug --enable-dtrace 
--with-jvm-variants=server 
--with-target-bits=64 
--enable-ccache 
--with-num-cores=8 
--with-memory-size=8000 
--disable-warnings-as-errors
  • 直接报错

configure: error: No xcodebuild tool and no system framework headers found, use --with-sysroot or --with-sdk-name to provide a path to a valid SDK 运行了一下xcodebuild,错误信息如下:

代码语言:javascript
复制
xcode-select: error: tool 'xcodebuild' requires Xcode, 
but active developer directory 
'/Library/Developer/CommandLineTools' is a command line tools instance
  • 解决方案
代码语言:javascript
复制
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
  • 继续执行bash configure得到如下

5 开始编译

代码语言:javascript
复制
make image

完成了!

6 验证

7 Clion 导入项目

  • 选择ok

8 编辑配置

如下图编辑DEBUG配置信息

  • Executable 选择之前build出的镜像里的java可执行文件
  • Program arguments 填写-version,输出Java版本
  • Before launch 注意:这里一定要移除Build,否则会报错无法调试

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 系统环境
  • 2 下载源码
  • 3 自动检测依赖
  • 4 配置参数
    • 参数说明
    • 5 开始编译
    • 6 验证
    • 7 Clion 导入项目
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档