r - 如何将 rJava 加载到 RStudio 中?

标签 r rstudio rjava

尽管我冒着重复问题的风险,但我还没有找到解决我的配置的方法。

我正在尝试将 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 工作:
enter image description here

最佳答案

我在我的 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/

相关文章:

r - 散点图和箱线图叠加

r - 查找向量的相似元素并修改其间的所有内容

r - 令人尴尬的基本 RStudio 困境 - "Error: object ' num' 未找到”

java - R:如何设置 JDK 以使用 R(相关:rJava、RStudio、xlsx)

R - 为重复购买分组日期和汇总数据

r - 如何绘制联锁环?

RStudio 显示不同的 $PATH 变量

python - 从 R 运行 Python

java - 如何将附加 R 库加载到 JRI 中并从 Java 执行?

java - rJava 未在 R 中加载