尽管我冒着重复问题的风险,但是我还没有找到针对我的配置的解决方案。
我正在尝试将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
答案 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