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

Apple M1设备R语言加载xlsx包时rJava架构不兼容问题求助

解决M1 Mac上R语言xlsx包加载失败的问题

问题根源

报错信息明确显示:你安装的Java是x86_64架构,而M1 Mac需要arm64e架构版本,两者不兼容导致rJava无法加载,进而xlsx包启动失败。

解决方案

方案1:安装arm64架构的Java并重新编译rJava/xlsx

  1. 卸载当前x86_64版本Java:
    • 终端运行sudo rm -rf /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
    • 删除Java安装目录:sudo rm -rf /Library/Java/JavaVirtualMachines/[你的Java版本目录]
  2. 下载适配arm64的Java(推荐开源免费的Adoptium Temurin 11或17版本)
  3. 安装后验证架构:终端运行java -version,输出中需包含aarch64或arm64字样
  4. 在R中重新安装源码版的rJava和xlsx:
    install.packages(c("rJava", "xlsx"), type = "source")
    library(xlsx)
    

方案2:用Rosetta 2以x86_64模式运行R

如果不想更换Java版本,可让R以兼容模式运行:

  1. 打开应用程序文件夹,找到R.app,右键选择「显示简介」
  2. 勾选「使用Rosetta打开」,重启R
  3. 在重启后的R中重新安装rJava和xlsx包:
    install.packages(c("rJava", "xlsx"))
    library(xlsx)
    

方案3:改用无Java依赖的Excel处理包

这是最省心的方案,完全避开Java兼容性问题:

  • readxl + writexl:轻量工具,专注基础读写操作
    install.packages(c("readxl", "writexl"))
    
    # 读取Excel文件
    library(readxl)
    data <- read_excel("your_file.xlsx", sheet = 1)
    
    # 写入Excel文件
    library(writexl)
    write_xlsx(data, "output.xlsx")
    
  • openxlsx:功能全面,支持格式设置、多工作表管理等进阶操作
    install.packages("openxlsx")
    library(openxlsx)
    
    # 读取数据
    data <- read.xlsx("your_file.xlsx")
    # 写入带格式的文件示例
    wb <- createWorkbook()
    addWorksheet(wb, "Sheet1")
    writeData(wb, "Sheet1", data)
    saveWorkbook(wb, "formatted_output.xlsx", overwrite = TRUE)
    

内容的提问来源于stack exchange,提问作者JStark

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:45:42