这是我得到的错误:
> 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 也没有任何问题
这里有两个选项:
-
获取旧版本的 R 并使用预编译版本的 rJava
-
获取 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)