尽管我冒着重复问题的风险,但我还没有找到我的配置的解决方案。
我正在尝试将 rJava 加载到 RStudio 中。
我使用的是最新的 Mac OS x,Rstudio 的版本只有几个月大,而且我刚刚安装了 JDK x64 12.0.1 rJava 的版本是 0.9-11
执行时:
library(rJava)
Run Code Online (Sandbox Code Playgroud)
我遇到了通常的情况:
错误:“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')
Run Code Online (Sandbox Code Playgroud)
但这没有任何区别。
我显然错过了某处的 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
我在我的 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
Run Code Online (Sandbox Code Playgroud)
仔细查看错误信息后,我发现我有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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2660 次 |
| 最近记录: |