rJava 在 R 3.4.2 和 MacOS Sierra 10.12.6 中无法加载



这是我得到的错误:

> 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.4/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
  Reason: image not found

我认为这绝不是一个独特的问题。我已经在这里,这里和这里尝试了解决方案。没有成功。

更多细节:我正在使用R GUI,但我也无法通过R终端加载rJava。我在 R 3.3.s 上使用 rJava 也没有任何问题

这里有两个选项:

  1. 获取旧版本的 R 并使用预编译版本的 rJava

  2. 获取 rJava 源代码并自行编译

请注意,rJava(最新的源代码)需要一些未嵌入在XCode中的功能,并且可以通过AppStore获得。在构建rJava包时,您将需要做一些低级的事情。

您可以在此处找到详细说明:http://www.owsiak.org/r-3-4-rjava-macos-and-even-more-mess/

如果您决定使用旧版本的 R,那么让它工作仍然很困难,但要做的事情更少:http://www.owsiak.org/r-java-rjava-and-macos-adventures/

对于不同版本的 MAC 操作系统,JAVA_HOME路径是不同的。在某些情况下,/jre文件夹,在某些情况下,不是在/Home导演使用终端中的CD命令手动转到/server文件夹并使用pwd复制整个路径使用它来设置java.home然后您可以轻松地加载rJava库。这就是我能够解决问题的方式

options("java.home"="/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/lib")
Sys.setenv(LD_LIBRARY_PATH='$JAVA_HOME/server')
dyn.load('/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/lib/server/libjvm.dylib')
library(rJava)

最新更新