You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下调用library(xlsx)时R会话崩溃的解决求助

M1 Mac下xlsx包崩溃&javareconf找不到jni.h的解决办法

优先推荐:换用无Java依赖的Excel工具包

xlsx包依赖Java,M1架构的Mac上Java环境兼容性问题特别多,没必要死磕。直接用下面这些不需要Java的包,功能一样稳定:

  • readxl:专门读Excel,语法简单没坑
  • writexl:专门写Excel
  • openxlsx:读写都支持,功能和xlsx差不多

安装代码:

install.packages(c("readxl", "writexl", "openxlsx"))

用openxlsx读写示例:

library(openxlsx)
# 读Excel
df <- read.xlsx("你的文件路径.xlsx")
# 写Excel
write.xlsx(df, "输出文件路径.xlsx")

一定要用xlsx?那修复Java环境

1. 装对M1版的JDK

必须装ARM架构的JDK,别装x86的。可以选Apple官方JDK或者Azul Zulu的ARM版。装完在终端跑这个看路径:

/usr/libexec/java_home -V

会输出类似/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home的路径,记下来。

2. 手动指定JNI路径跑javareconf

终端里执行下面的命令,把路径换成你刚才记的自己的JDK路径:

sudo R CMD javareconf JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home \
CFLAGS="-I/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/include/darwin" \
CPPFLAGS="-I/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home/include/darwin"

3. 重装xlsx相关包

先卸载旧的:

remove.packages(c("xlsx", "rJava"))

再重新装:

install.packages("rJava")
install.packages("xlsx")

终极兜底:用Rosetta 2跑RStudio

如果上面都不行,试试让RStudio以x86模式运行:

  • 找到应用程序里的RStudio,右键点「显示简介」
  • 勾上「使用Rosetta打开」
  • 重启RStudio再试试装xlsx

内容的提问来源于stack exchange,提问作者Rayan El Kholdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:27:20