我最近开始在MacBook上安装M1 Max。但是现在,在R
中,使用xlsx
,我得到这个错误:
library(xlsx)
Error: package or namespace load failed for ‘xlsx’:
.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'))
rJava
似乎是问题,所以我试图安装并运行:
install.packages("rJava")
library(rJava)
Error: package or namespace load failed for ‘rJava’:
.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'))
我四处阅读,看到M1的其他人也有类似的问题:
如何在Mac上安装rJava包
https://github.com/rstudio/rstudio/issues/11130
我试着按照这些步骤,但仍然不能使它工作。
这是我的R版本- R版本4.2.2(64位)。这是我的java版本- 1.8.0_351(64位)。
我尝试了R CMD javareconf
在终端,并重新启动机器,但没有变化。
我读到我可能需要安装javaJDK 17 aarch64
(无法在Macbook上使用rJava包与Apple M1芯片,得到下面的错误),或将java降级到版本8 (https://github.com/rstudio/rstudio/issues/11130)。
TBH我真的不明白这些页面上的建议,我担心会把我的机器搞砸。非常感谢您的帮助!
我已经设法解决了这个问题。答案来自这个帖子:https://stackoverflow.com/a/70456947/8201618
brew install openjdk
brew info openjdk
然后是像
这样的命令For the system Java wrappers to find this JDK, symlink it with
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
我运行了这个,重新启动了计算机,现在rJava
和xlsx
正在工作!
最新版本不支持xlsx。使用readxl包代替
install.package (readxl)