17611538698
webmaster@21cto.com

Oracle 警告mac开发者不要升级到 Sonoma 14.4,严重影响Java!

资讯 0 146 2024-03-22 02:37:03

图片

导读:Oracle 近日警告开发者不要升级Apple 芯片上的 macOS Sonoma 到14.4,JetBrains IDE 会受到严重影响。

Apple 因对 macOS 的 Sonoma 14.4 更新进行系统更改而受到业界批评,它的此次升级破坏了一些 Java 应用程序特性。

Oracle 警告 Java 开发者用户不要马上更新,因为使用基于 JVM(Java 虚拟机)构建的 JetBrains IDE 的开发者已经受到了影响。

主要表现的问题:在运行 Apple Silicon 的系统上,操作系统行为的改变会在没有警告的情况下终止应用程序。并不意味着所有 Java 应用程序都会崩溃,而只是那些依赖先前行为的应用程序会崩溃,也就是说在使用相应功能时才会崩溃。 

Oracle 产品管理高级总监 Aurelio Garcia-Ribeyro发出警告说

“目前还没有可用的解决方法,而且由于没有简便方法来恢复 macOS 的旧版本,受影响的用户无法恢复到稳定的配置,除非他们在操作系统更新之前对系统进行了完整备份。”

图片

从技术侧描述,是当进程访问受保护的内存时会发生哪些情况:早期版本的 macOS 中,包括 14.4 的预览版,内核会向进程发送 SIGBUS 或 SIGSEGV 信号,该信号可以被操作系统接受并处理。

而在 macOS 14.4 发行版本中,会发送 SIGKILL 信号,这意味着进程将终止。 

Garcia-Robeyro 称自己观察到的详情如下:

“这个问题在 macOS 14.4 的体验版本中并不存在,因此直到 Apple 发布更新后才被发现”,这意味着无法为该问题做好准备或提前警告用户。“Oracle 已将这一情况通知客户、Apple 和OpenJDK 合作伙伴,我们建议运行 macOS 14 的基于 ARM 的 Apple 设备上的 Java 用户推迟应用更新,直到此问题得到解决。”

相关的OpenJDK 错误报告被标记为“未解决”,并影响到了 JDK 8、11、17、21 和 22。

图片

JetBrains 的 Maxim Kartashev这样说

“这个问题是随着 macOS 14.4 的发布而出现的;我们常规测试的 14.4 Beta 中并不存在这个问题。目前来自多家公司的人员正在研究一个强大的解决方案,但是这得需要一些时间。” 

有开发者也跑出来向大家这样反映:

JetBrains 为其 IDE 提供了预发布运行时,能缓解但不能完全解决问题。就在刚才,我在更新的运行时版本中再次发生桌面程序崩溃图片 。

另一位开发者也表示:“不敢相信苹果在最后一刻,在一个小版本中对整个 Java 社区做出了这样的事情。”

这是 macOS 14.4 中的bug,还是 Apple 认为自己正在加强安全性?两者皆有可能,但在最后一刻在没有警告的情况下做出这一重大改变似乎不合理。

图片

Oracle已要求苹果给它一个完美的解释。

这个故事也给企业团队们,特别是 Windows 管理员可能更熟悉的一个情节:“是否尽早更新操作系统以从安全补丁中受益,还是仅在测试潜在损坏后才进行延迟更新”。

闲言少叙,新操作系统虽然好看但可能有坑,特别提请Java开发者注意~


评论