这是我得到的错误:
> 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
我认为这绝不是一个独特的问题。我已尝试过解决方案here,here和here。没有成功。
更多细节:我使用R GUI,但我也无法通过R终端加载rJava。我也没有在R 3.3.s上与rJava有任何问题
答案 0 :(得分:1)
这里有两个选项:
获取R的旧版本并使用预编译版本的rJava
获取rJava源代码并自行编译
请注意,rJava(最新的源代码)需要一些未嵌入XCode和clang内部的功能,这些功能可通过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/
答案 1 :(得分:1)
不同版本的MAC OS的JAVA_HOME路径不同。
在某些情况下,有/jre
个文件夹,在某些情况下,/Home
导演不会在终端后使用/server
命令手动转到CD
文件夹并使用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)