如何将rJava加载到RStudio中?

时间:2019-05-20 07:42:37

标签: r rstudio rjava

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

我正在尝试将rJava加载到RStudio中。

我使用的是最新的Mac OS x,它的Rstudio版本只有几个月的历史,并且我刚刚安装了JDK x64 12.0.1。 rJava的版本是0.9-11

执行时:

library(rJava)

我经常遇到:

错误:“ rJava”的程序包或名称空间加载失败:  .onLoad在'rJava'的loadNamespace()中失败,详细信息:   调用: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 /首页/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识别出正确的Java版本。

编辑2

幸运的是,我认为我正在使用Java 11: enter image description here

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我遇到了同样的问题,可以通过搜索来解决它,但是我不记得已经完成的确切步骤,但我再次查看了一下,发现了这个答案,希望它对您有用。您必须在终端中运行此命令。我不知道是否可以发布链接,但我只是键入了“ rjava lib Rstudio错误”,我发现了几种不同的解决方案,因此您可以看看它们是否无效。

sudo R CMD javareconf