专栏首页BennyhuoJava 17 更新(4):这波更新,居然利好 mac 用户

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

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 的支持,则需要在虚拟机参数当中添加:

-Dsun.java2d.metal=true

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

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

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

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

-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 用户来讲还是很有用的,可能会对开发效率的提升帮助比较大。


文章分享自微信公众号:
Kotlin

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

如有侵权,请联系 yunjia_community@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Java 17 更新(11):支持矢量运算,利好科学计算?

    我们这一篇来简单聊聊 JEP 414: Vector API (Second Incubator),之前 Java 16 就已经开始孵化这个项目了。

    bennyhuo
  • Java 17 更新(5):历史包袱有点儿大,JDK 也在删代码啦

    大多数 Java 程序员应该接触过 Servlet,其实在浏览器端对应的还有个 applet,但那已经是很早的时候的东西了。十几年前我开始学 Java 的时候,...

    bennyhuo
  • Java 17 更新(12):支持上下文的序列化过滤器,又一次给序列化打补丁

    接下来我们介绍 Java 17 合入的最后一个还没介绍的提案:JEP 415: Context-Specific Deserialization Filters...

    bennyhuo
  • Java 17 更新(6):制裁!我自己私有的 API 你们怎么随便一个人都想用?

    今天我们来聊聊 JEP 403: Strongly Encapsulate JDK Internals。这一条对于使用 JDK 内部 API 的应用场景来讲会比...

    bennyhuo
  • Java 17 更新(8):密封类终于转正

    我们书接上回,继续聊 Java 17 的更新。这篇我们介绍一下 JEP 409: Sealed Classes。

    bennyhuo
  • Java 17 更新(7):模式匹配要支持 switch 啦

    这一次我们来聊聊 JEP 406: Pattern Matching for switch (Preview)。这是一个预览特性。

    bennyhuo
  • Java 17 更新(10):访问外部函数的新 API,JNI 要凉了?

    我们书接上回,接着聊 JEP 412: Foreign Function & Memory API (Incubator) 当中访问外部函数的内容。

    bennyhuo
  • Java 17 更新(9):Unsafe 不 safe,我们来一套 safe 的 API 访问堆外内存

    接下来,我们来聊聊访问外部资源的新 API,这些内容来自于 JEP 412: Foreign Function & Memory API (Incubator)...

    bennyhuo
  • 全方位对比:Python、Julia、MATLAB、IDL 和 Java (2019 版)

    我们使用简单的测试用例来对各种高级编程语言进行比较。我们是从新手程序员的角度来实现测试用例,假设这个新手程序员不熟悉语言中可用的优化技术。我们的目的是突出每一种...

    Java帮帮
  • 在 M1 芯片 Mac 中使用原生 Java 优雅地玩 Minecraft

    Apple 在去年年底发布了 M1 Max 芯片,这款芯片的性能在 M1 的基础上又上升了一个等级,作为一名伪果粉,我果断在第一时间入手了一台 32G 的 M1...

    米开朗基杨
  • 苹果史上最强芯片竟然是个“组装货”!iPhone SE涨价,13系列是真绿了

    金磊 明敏 博雯 发自 凹非寺 量子位 | 公众号 QbitAI 今年的苹果春季发布会,库克依旧线上“高能传送”。 而在此前一波火热的“发布M2芯片”预测声中...

    量子位
  • WWDC 2018前瞻丨除了iOS 12,还有新的MacBook和双端系统的整合

    VRPinea
  • 大多数 Java 开发者计划在明年内过渡到 Java 17

    JRebel 发布了最新的 2022 Java 开发人员生产力报告。探讨了 2022 年 Java 开发人员调查的结果,并详细说明了 Java 开发的最大趋势如...

    程序猿DD
  • JDK 商用正式免费、Log4j2 爆核弹级漏洞、LayUI 下线...2021 发生的 10 件大事!!

    去年栈长给大家盘点了《Java 开发行业 2020 年发生的几件大事》,2022 年来了,也必须对 2021 做个总结了,2021 年 "Java技术栈" 都有...

    Java技术栈
  • Apache NiFi 1.0.0测试版:邮件路由应用新型ListenSMTP

    本文为用户使用Apache NiFi最新版本来监听SMTP邮件,并以编程方式做出反应以及捕捉数据提供了指导。 ? 首先就可以注意到Apache NiFi 1.0...

    CSDN技术头条
  • InfoQ 最新 Java 发展趋势报告

    作者 | Michael Redlich, Ben Evans, Erik Costlow, Johan Janssen 等

    深度学习与Python
  • 程序员看过来!6499元Mac mini带回家!让你写代码的速度快上30倍!

    这次发布会的主角是:iPad Pro、MacBook Air、Mac mini、Apple Pencil。

    镁客网
  • 应急响应团队建设:云上威胁响应周期模型

    笔者在最近的安全沙龙上,同僚们表现出对应急响应方法论的渴求。所以我想通过真实案例来讲一下应急响应周期建设,以起到抛砖引玉之效,给大佬们的工作带来参考价值。

    FB客服
  • 科普!WLAN定义、基本架构、射频、信道和标准协议

    关于WLAN,相信大家对它早已不陌生了。几乎每天我们都能体验到WLAN给我们的生活带来的高效和便捷。在家里,通过无线路由器,我们不必再端端正正的坐在电脑旁,可以...

    用户8611941

扫码关注云+社区

领取腾讯云代金券