安装jdk25后习惯性执行命令java -version,但是报错了,后找到java的可执行文件直接运行同样报错:
➜ ~ /Library/Java/JavaVirtualMachines/jdk-25.jdk/Contents/Home/bin/java ; exit;
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0xa) at pc=0x0000000102776c7c, pid=40234, tid=9987
#
# JRE version: (25.0.2+10) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0.2+10-LTS-69, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)
# Problematic frame:
# V [libjvm.dylib+0x47ec7c] CodeHeap::allocate(unsigned long)+0x16c
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/joyfish/hs_err_pid40234.log
#
#
[1] 40234 abort /Library/Java/JavaVirtualMachines/jdk-25.jdk/Contents/Home/bin/java
Saving session...completed.
[进程已完成]
我的电脑是M1芯片,起初以为是误装了x86安装包的原因,更换了多个安装文件都无果。最后找到原因是因为SIP完整性保护被关闭导致,检查SIP是否开启:csrutil status,如果是disable那么需要重新启用SIP,长按电源键进入恢复模式,打开终端输入csrutil enable后回车,后续输入管理员用户密码reboot即可。
如果安装jdk17以上版本,遇到这种报错不妨检查一下SIP