前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 17 更新(4):这波更新,居然利好 mac 用户

Java 17 更新(4):这波更新,居然利好 mac 用户

作者头像
bennyhuo
发布2021-10-19 14:33:53
2.2K0
发布2021-10-19 14:33:53
举报
文章被收录于专栏:BennyhuoBennyhuo

mac 这几年的变化还是挺大的,Java 也必须做一些适应性的变化,不然都没法外接高分显示器了。

关于 mac 的更新一共两条,我们来一一介绍给大家。

JEP 382: New macOS Rendering Pipeline

不知道大家在 macOS 上用 IntelliJ IDEA 或者 Android Studio 会不会觉得卡,就是在本地打字打出了远程控制的感觉的那种卡。

img

解决办法也很简单,把窗口调小一点儿就行。

我有个 2015 款的 MacBook Pro,之前我用它连 4K 外接显示器写代码,发现很快电脑就发烫发热,IDE 也会卡得不成样子。一开始我以为是我的电脑快不行了,后来我发现很多用最新款 MacBook 的人也在抱怨 IntelliJ IDEA 的垃圾性能。

给 JetBrains 报 Bug,结果发现人家大哥把锅甩给了 JDK。

JDK 也不客气,直接用 IntelliJ IDEA 做测试:

简单来说就是 Mac 上以前 Java 2D 的 API 是基于 OpenGL 的,从 Java 17 开始则提供了基于最新的 Metal Framework 的实现。目前默认还是基于 OpenGL,这样对于线上的程序几乎没有负面影响,如果大家需要启用 Metal 的支持,则需要在虚拟机参数当中添加:

代码语言:javascript
复制
-Dsun.java2d.metal=true

Metal 在后面也应该会成为默认选择。

所以这条更新,建议使用 Mac 的小伙伴们密切关注,也建议开发 Mac 桌面程序的小伙伴尽快适配。

(跟我有什么关系,Windows 11 YYDS! )

对了,我在 Mac M1 上下载了 Java 17 的 arm64 版本(下一条将会提到),然后用 AppCode(JetBrains 全家桶当中用来写 iOS 程序的 IDE) 替换了这个 JDK,并在 JVM 参数当中配置了:

代码语言:javascript
复制
-Dsun.java2d.metal=true

--add-opens=java.desktop/java.awt.event=ALL-UNNAMED
--add-opens=java.desktop/sun.font=ALL-UNNAMED
--add-opens=java.desktop/java.awt=ALL-UNNAMED
--add-opens=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.desktop/javax.swing=ALL-UNNAMED
--add-opens=java.desktop/sun.swing=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
--add-opens=java.desktop/java.awt.peer=ALL-UNNAMED
--add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED

外接 4K 显示器以后,代码编写和代码提示的速度有了明显的提升,大家可以试试看(后面的一堆 --add-opens 是为了任意访问没有在 module 当中声明公开的 API,这个策略 Java 17 也有调整,我们后面会讲到)。

JEP 391: macOS/AArch64 Port

噗。。。还记得我司刚给小伙伴们发了一台高贵的 Apple Silicon 的 Air 的时候,有大佬还专门写教程告诉我们去哪儿找 arm64 的 JDK(https://www.azul.com/downloads/?version=java-11-lts&os=macos&architecture=arm-64-bit&package=jdk):

这回 Java 官方终于也支持了,直接到 Oracle 的网站(https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)上就能下载(要知道 Java 16 的时候还只有 x86 的版本):

哎,等等,下面的 DMG Installer 是不是丢了个 Arm 啊。。这得扣钱啊小编。

小结

这两条更新对于 mac 用户来讲还是很有用的,可能会对开发效率的提升帮助比较大。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Kotlin 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JEP 382: New macOS Rendering Pipeline
  • JEP 391: macOS/AArch64 Port
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档