当前位置: 首页 > 知识库问答 >
问题:

rStudio/r“升级”到OSX Yosemite后发生Java加载错误

吴弘壮
2023-03-14

我最近从OSX山狮“升级”到优胜美地,从R 3.1.3升级到3.2。升级完成后,当我打开R或RStudio时,弹出一条消息,说我需要安装Java6。此外,加载rJava或任何依赖于rJava的包(例如,xlsx)导致RStudio崩溃(当我通过直接打开R.app尝试这样做时,R也崩溃)。

在尝试了堆栈溢出和其他地方找到的几个修补程序之后(更多详细信息如下),我已经到了加载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

    选中选项(“java.home”)并发现该选项被设置为。我尝试将其设置为以下内容(根据这个SO问题):

    选项(“java.home”=“/library/java/JavaVirtualMachines/jdk1.8.0_45.jdk/contents/home/jre”)

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

    在尝试所有这些操作时,我能够在不使R崩溃的情况下加载rjava,但却得到了上面发布的错误消息。此外,当我退出RStudio时,它似乎会正常关闭,但随后会弹出“RStudio意外退出”消息,表明程序在尝试关闭时已经崩溃。

    我最终决定安装Java for OS X 2014-001(Java 6),因为我似乎没有选择了。现在,当我打开R或RStudio时,“This software needs Java 6”弹出消息不再出现。但是,我仍然得到了上面发布的'rjava'错误消息的.onload在loadNamespace()中失败。

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

    ld_library_path=$(/usr/libexec/java_home)/jre/lib/server:open-一个RStudio

    这打开了一个RStudio窗口,并且我还能够加载rjava和依赖于它的包而不会出现错误。

    最后,我尝试从命令行运行R(我以前没有这样做过)。事实证明,在命令行上,加载rjava或任何依赖于rjava的包都可以工作,并且不会抛出任何错误。

    因此,如果我从命令行打开RStudio,使用为RStudio提供java路径的代码(如上所述),现在就可以让rjava工作了。然而,我想找到一种方法来修复潜在的问题,不管它是什么,这样RStudio就可以以通常的Mac方式打开,而不需要命令行的kludge。我还担心安装旧版本的Java可能会导致以后的问题。

    有没有人对如何诊断和解决这个问题有什么想法?


  • 共有1个答案

    权韬
    2023-03-14

    我和你有同样的问题,经历同样的步骤。允许通过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或RStudio时,立即弹出消息,提示我需要安装rJavaJava6 。此外,加载或依赖rJava的任何软件包(例如)都导致崩溃(R也崩溃了)当我通过直接打开尝试此操作时)。 在尝试了在和其他地方(下面有更多详细信息)中找到的一些修复程序之后,我发现加载rJava或依赖的任何程序包

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

    • 问题内容: 昨天,“软件更新”中对Jave(1.6.0_31)进行了更新,但是现在当我尝试发送更新的应用程序时,出现此错误“上载到iTunes Store时出错”。 控制台写入此错误…需要Java 1.5、1.6或1.7。当前,java是默认的Java版本。请升级。 任何想法如何解决这个问题? 谢谢! 问题答案: 我遇到了同样的“上载到iTunes Store时发生错误”问题,这使我度过了一个美好

    • 我正在尝试在一个相当旧的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

    • 我正在将一个庞大的应用程序从Java8升级到Java11。我们仍在使用Java8构建,但使用Java11运行。 由于加载器约束违规,我看到一个类没有正确加载。代码库通过maven依赖项中的jar文件导入此类。如果我们在启动应用程序之前删除jar文件,问题就会消失。 错误如下: 加载程序约束冲突:加载程序“引导”想要加载接口组织。w3c。多姆。穿越。NodeIterator。com以前加载了同名的不

    • 问题内容: 从1.8升级到django 1.9时,出现此错误。我检查了类似问题的答案,但我认为这不是任何第三方软件包或应用程序的问题。 我已经为“ django.contrib.auth”修改了已安装的应用程序。 问题答案: 尝试将以下行添加到设置文件的顶部: 并且如果这不能帮助你尝试从已安装的应用程序列表中逐一删除第三方应用程序。