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

Mac M1设备RStudio中rJava加载失败问题求助

Mac M1设备运行旧Intel R项目时rJava无法工作的解决方法

问题概况

在Mac M1(arm64架构)设备上运行旧Intel Mac的R项目时,rJava完全无法正常工作,核心问题是Java架构不兼容——系统识别到的是x86_64版本的Java,而M1需要arm64版本。

报错详情

.onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(jli, FALSE)
error: unable to load shared object '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jli/libjli.dylib':
dlopen(/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jli/libjli.dylib, 0x000A): tried: '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jli/libjli.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jli/libjli.dylib' (no such file), '/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jli/libjli.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))

用户曾执行以下命令查看Java路径,但识别位置存在问题:

/usr/libexec/java_home /usr/libexec/java_home /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 

尝试手动设置JAVA_HOME但未生效:

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home 

解决步骤

1. 替换为arm64架构的Java

  • 卸载现有x86_64版本Java:打开/Library/Internet Plug-Ins/,删除JavaAppletPlugin.plugin;打开/Library/Java/JavaVirtualMachines/,删除x86版本的JDK文件夹。
  • 下载并安装arm64架构的JDK 8或更高版本(选择适配M1的安装包)。

2. 正确配置JAVA_HOME环境变量

  • 打开终端,执行命令获取arm64 Java的正确路径:
    /usr/libexec/java_home -v 1.8 --arch arm64
    
    复制输出的完整路径(例如/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home)。
  • 编辑shell配置文件:
    • bash用户执行:nano ~/.bash_profile;zsh用户执行:nano ~/.zshrc。
    • 在文件末尾添加:
      export JAVA_HOME=/刚才复制的arm64版本JDK路径
      export PATH=$JAVA_HOME/bin:$PATH
      
    • 按Ctrl+O保存,Ctrl+X退出编辑。
  • 使配置生效:
    # bash用户
    source ~/.bash_profile
    # zsh用户
    source ~/.zshrc
    
  • 验证:执行echo $JAVA_HOME确认路径正确;执行java -version,输出中应包含aarch64(即arm64架构标识)。

3. 重新安装rJava包

  • 打开arm64版本的R/RStudio(可通过Sys.info()["machine"]查看架构,输出应为arm64)。
  • 卸载旧版rJava:
    remove.packages("rJava")
    
  • 重新安装并测试:
    install.packages("rJava")
    library(rJava)
    
    无报错则说明安装成功。

4. 备选方案:用Rosetta 2运行x86版本R

若必须依赖x86架构的Java和项目,可通过Rosetta 2兼容:

  • 安装Rosetta 2:终端执行softwareupdate --install-rosetta。
  • 找到R.app,右键「显示简介」,勾选「使用Rosetta打开」。
  • 安装x86版本Java,配置对应JAVA_HOME后重新安装rJava。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:55:15