当前位置: 首页 > 面试题库 >

“升级”到OSX Yosemite后RStudio / R中的rJava加载错误

沈树
2023-03-14
问题内容

我最近从OSX Mountain Lion升级到优胜美地,从R 3.1.3升级到3.2。升级后,当我打开R或RStudio时,立即弹出消息,提示我需要安装rJavaJava6 。此外,加载或依赖rJava的任何软件包(例如xlsx)都导致RStudio崩溃(R也崩溃了)当我通过R.app直接打开尝试此操作时)。

在尝试了在Stack Overflow和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载rJava或依赖的任何程序包rJava不再导致R崩溃,但是导致以下错误:

library(rJava)
Error : .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.2/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
  Reason: image not found
Error: package or namespace load failed for ‘rJava’

但是,如果我从命令行调用R,然后加载rJava或依赖于rJava它的任何程序包,则它似乎可以工作(或者至少我没有收到任何错误消息)。

我尝试了许多不同的尝试修复,其中一些尝试了几次,并且记不清我到底是按照什么顺序做了的(没有意识到这会是一件麻烦事,而且并没有真正追踪到) ,但要点如下:

  • 向我添加了以下内容.bash_profile(根据此SO答案):

export JAVA_HOME="/usr/libexec/java_home -v 1.8" export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/server

  • 从命令行重新配置Java,如下所示:

sudo R CMD javareconf -n

  • 检查options(“java.home”)并发现此设置为 NULL。我尝试将其设置为以下内容(针对此SO问题):

options(“ java.home” =“ / Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre”)

安装了最新的Java开发工具包,并rJava从源代码重新安装(不记得我在哪里找到了那个工具包)。

在尝试所有这些方法的某个时刻,我能够加载rJava而不会崩溃R,但是却在上面显示了错误消息。另外,当我退出RStudio时,它似乎正常关闭,但随后会弹出“ RStudio意外退出”消息,表明该程序在尝试关闭时崩溃了。

最终我决定为OS X 2014-001(Java 6)安装Java,因为我似乎用光了所有的选件。现在,当我打开R或RStudio时,不再出现“此软件需要Java 6”弹出消息。但是,我仍然收到.onLoad failed in loadNamespace() for 'rJava'上面发布的错误消息。

在回顾我已经看过的一些文章时,我注意到了我之前错过的另一个SO答案,建议使用以下命令行代码打开RStudio,该代码为RStudio提供了通往Java的正确路径:

LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio

那打开了一个RStudio窗口,我也能够加载rJava和打包依赖它的窗口而不会出现错误。

最后,我尝试从命令行运行R(我之前没有做过)。事实证明,在命令行上,加载rJava或依赖于rJava工作且不会引发任何错误的任何软件包。

因此,rJava如果我从命令行打开RStudio,并使用赋予RStudio Java路径的代码,则现在可以开始工作(如上所述)。但是,我想找到一种解决潜在问题的方法,无论它可能是什么,以便可以用Mac惯用的方式打开RStudio,而无需使用命令行。我还担心安装旧版本的Java可能会导致问题。

是否有人对如何诊断和解决此问题有任何想法?


问题答案:

我遇到了同样的问题,并且与您经历了相同的步骤。允许通过Finder / Spotlight启动RStudio的最后一步是将libjvm.dylib链接到/ usr / local / lib:

sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

-f 添加了标志以强制覆盖现有文件/链接



 类似资料:
  • 问题内容: 我最近从OSX Mountain Lion升级到优胜美地,从R 3.1.3升级到3.2。升级后,当我打开R或时,立即弹出消息提示我需要安装 。此外,加载或依赖rJava的任何软件包(例如xlsx)都导致RStudio崩溃(R也崩溃了)当我通过R.app直接打开尝试此操作时)。 在尝试了和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载或依赖的任何程序包不再导致R崩溃,

  • 我最近从OSX山狮“升级”到优胜美地,从R 3.1.3升级到3.2。升级完成后,当我打开R或RStudio时,弹出一条消息,说我需要安装Java6。此外,加载或任何依赖于rJava的包(例如,)导致RStudio崩溃(当我通过直接打开尝试这样做时,R也崩溃)。 在尝试了堆栈溢出和其他地方找到的几个修补程序之后(更多详细信息如下),我已经到了加载或任何依赖于的包不再导致R崩溃的地步,而是导致以下错误

  • 虽然我有重复问题的风险,但我还没有找到配置的解决方案。 我正在尝试将rJava加载到RStudio中。 我使用的是最新的Mac OS x,Rstudio版本只有几个月的历史,我刚刚安装了JDK x64 12.0.1 rJava的版本是0.9-11 执行时: 我面临着通常的情况: 错误:“rJava”的包或命名空间加载失败:。“rJava”的loadNamespace()中的onLoad失败,详细信

  • 问题内容: 我在macOS sierra(10.12.5)上运行R(版本3.4.0),并且尝试使用xlsx库,该库要求使用rJava库。 当我尝试在R控制台中使用rJava加载时(无论是在RStudio中还是在终端中),都会收到以下错误消息,使我难以理解: 在这个问题上进行了搜索,我发现了许多类似的帖子(但每次都有一些不同的问题),其中最有前途的就是这个SO问题。 由于建议的步骤需要适应我的情况,

  • 所以,这基本上是我在调用rjava时遇到的错误: 库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(file,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/versions/3.6/resources/

  • 我正在尝试在一个相当旧的ubuntu xenial版本上将R从3.4.4升级到3.6.0。 我遵循了这些指示:这里 以下是我采取的步骤: sudo apt-get删除r-base-dev echo'debhttps://cloud.r-project.org/bin/linux/ubuntutruy-cran35/'|sudo ted-a /etc/apt/sources.list sudo ap