当我使用具有 M1 架构的 Mac 时,我在 R 中安装包的过程很糟糕。
以下是我到目前为止所遵循的步骤
安装 Java https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jdk,使用 Zulu 版本:16.30.19
install.packages("rJava")
在 R 中
R CMD javareconf
在终端
dyn.load("/Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home/lib/server/libjvm.dylib")
在 R 中
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
感谢任何帮助
答案 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