首页 > 解决方案 > 如何删除 mac 中与 rJava 相关的错误消息

问题描述

我已经在 R 中安装了 rJava 包,并且我还在我的 mac 上安装了 Java 64 位,但是当我尝试加载 rJava 包时,我不断收到错误消息。

library(rJava)
    Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib/server/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so
  Reason: image not found

我尝试了所有我能做的事情。我试图插入sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib 终端

我也试过Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre')

dyn.load(paste0(system2('/usr/libexec/java_home',stdout = TRUE), '/jre/lib/server/libjvm.dylib'))
dir(paste0(system2('/usr/libexec/java_home',stdout=TRUE)))

但它们都对我不起作用 不断收到与上述相同的错误消息。有人可以帮助我吗?谢谢

标签: javarrjava

解决方案


我在我的 Mac 上遇到了同样的问题。对于 Java 9,路径与您发布的路径不同。

sudo ln -f -s $(/usr/libexec/java_home)/lib/server/libjvm.dylib /usr/local/lib

并且也在下面更新R。

MY_R_VERSION=$(Rscript -e "cat(with(R.version, sprintf('%s.%s', major, substring(minor, 1, 1))))")
ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/$MY_R_VERSION/Resources/lib/

推荐阅读