MacOS 14.4 引发Java 应用崩溃

MacOS 14.4 引发 Java 应用崩溃

根据Java官方发布的文章,由于macOS上运行的进程可能会访问受保护内存区域中的内存。在 macOS 14.4 更新之前,在某些情况下,macOS 内核会通过向进程发送信号 SIGBUS 或 SIGSEGV 来响应这些受保护的内存访问。然后该进程可以选择处理该信号并继续执行。而在最新 macOS 14.4 中,当线程在写入模式下运行时,如果尝试对受保护的内存区域进行内存访问,macOS 将发送信号SIGKILL。该进程无法处理该信号,并且该进程将无条件终止。

目前该问题主要受影响的Mac机型和Java版本包括:

  • Mac机型:M1、M2、M3(Apple Silicon m* 芯片)
  • Java版本:Java 8 - Java 22 所有版本

如果还在使用Intel芯片的话,这次不受影响。

官方文章 Java users on macOS 14 running on Apple silicon systems should skip macOS 14.4 and update directly to macOS 14.4.1 (oracle.com)

在x上,Java开发领域的一些大v们,也发现了这个问题,并提醒大家不要升级。

其他资料

Java users on macOS 14 running on Apple silicon systems should consider delaying the macOS 14.4 update | Lobsters

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计