如何在 M1 架构的 Mac 中安装 rJava 包

时间:2021-06-05 12:56:08

标签: java r macos rjava

当我使用具有 M1 架构的 Mac 时,我在 R 中安装包的过程很糟糕。

以下是我到目前为止所遵循的步骤

  1. 安装 Java https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jdk,使用 Zulu 版本:16.30.19

  2. install.packages("rJava") 在 R 中

  3. R CMD javareconf 在终端

  4. dyn.load("/Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home/lib/server/libjvm.dylib") 在 R 中

  5. library(rJava)

这是我的错误

Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(jvm, FALSE)
  error: unable to load shared object '/Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home/lib/server/libjvm.dylib':
  dlopen(/Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home/lib/server/libjvm.dylib, 10): no suitable image found.  Did find:
    /Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home/lib/server/libjvm.dylib: mach-o, but wrong architecture
    /Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home/lib/server/libjvm.dylib: mach-o, but wrong architecture

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题,但在发现这个问题隐藏在一些文档中后设法解决了这个问题。

<块引用>

要在“arm64”macOS 上使用带有 R 的 CRAN(“x86_64”)二进制分发版的 Java(特别是包 rJava),请安装 Java JRE 的“x86_64”构建版本,例如来自 AdoptOpenJDK 的版本,然后运行 ​​sudo R CMD javareconf。

<块引用>

要查看当前安装的 Java 兼容版本,请运行 /usr/libexec/java_home -V -a x86_64。如果需要,请设置环境变量 JAVA_HOME 以在从源代码构建 R 和运行 R CMD javareconf 时在这两者之间进行选择。

<块引用>

配置和构建 R 既寻找 JRE 又支持编译 JNI 程序(用于安装包 rJava 和 JavaGD);后者需要 JDK (Java SDK) 而不仅仅是 JRE99。

https://cran.r-project.org/doc/manuals/r-patched/R-admin.html