尽管我冒着重复问题的风险,但我还没有找到解决我的配置的方法。
我正在尝试将 rJava 加载到 RStudio 中。
我正在使用最新的 Mac OS x,它的 Rstudio 版本只有几个月大,而且我刚刚安装了 JDK x64 12.0.1
rJava 版本为 0.9-11
执行时:
library(rJava)
我遇到了通常的情况:
错误:“rJava”的包或命名空间加载失败:
“rJava”的 loadNamespace() 中的 .onLoad 失败,详细信息:
调用:dyn.load(file, DLLpath = DLLpath, ...)
错误:无法加载共享对象“/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/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/server/libjvm.dylib
引用自:/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so
原因:找不到图片
我试过将我的 Java 主路径设置为:
Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home')
但这没有任何区别。
我显然错过了某处的 rJava 说明,其中列出了如何在所有计算机设置上安装该软件包。我很感激一些帮助。
编辑 #1
按照下面评论中提供的链接,我设法在 RStudio 中通过 rJava 运行了最新版本的 Java JDK。文档“R、Java、rJava 和 macOS 的冒险”并不完整,无法即用。你可能最终会为了让它工作而进行黑客攻击。
我需要 rJava 来运行 venneuler,不幸的是,这在使用最新的 Oracle JDK 版本 12 时不起作用:
警告:最初的 Java 12 版本已经破坏了 JNI 支持并且不起作用。使用稳定的 Java 11(如果可用,请注意 12u)。
错误:在 rJava 引导期间发生 Java 异常 - 有关 Java 堆栈跟踪,请参阅 stderr。
我将尝试(祝我好运)在我的机器上安装两个版本的 Java 并让 RStudio 识别正确的一个。
编辑 2
纯粹的运气我想我有 Java 11 工作:
最佳答案
我在我的 mac(OSX High Sierra v10.13.6)上也遇到了这个问题,并且无法按照之前的建议(重新安装 JDK、R CMD javareconf 或设置 JAVA_HOME)解决它。相同的错误消息仍然存在:
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-11.0.1.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
仔细查看错误信息后,我发现我有JDK12,但是R一直在我系统中不存在的JDK11文件夹下寻找libjvm.dylib。 JDK11 的路径出现在 Sys.get('DYLD_FALLBACK_LIBRARY_PATH') 中,但是覆盖这个变量并没有帮助。 dyn.load('PATH_TO_YOUR_JDK') 也没有。
然后错误消息的倒数第二行引起了我的注意:libjvm.dylib 的路径是从 rJava.so 引用的。为什么不看看这个文件呢?最后打开rJava.so,找到JDK11路径替换为JDK12路径,rJava完美加载。希望这可以帮助其他有同样问题的人。
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tabulizer_0.2.2 rJava_0.9-11
loaded via a namespace (and not attached):
[1] tabulizerjars_1.0.1 compiler_3.5.2 assertthat_0.2.1 cli_1.1.0 tools_3.5.2 withr_2.1.2
[7] rstudioapi_0.10 yaml_2.2.0 crayon_1.3.4 png_0.1-7 sessioninfo_1.1.1
关于r - 如何将 rJava 加载到 RStudio 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56216349/