微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在 M1 架构的 Mac 中安装 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

感谢任何帮助

解决方法

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

要在“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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。