为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑8549860 2019-06-23 16:37:18
RStudio/R“升级”到OSX Yosemite后的RJava加载错误我最近“升级”了从OSX山狮到约塞米蒂和R 3.1.3到3.2。升级后,当我打开R或RStudio时,立即收到一条弹出消息,说我需要安装Java 6。rJava或依赖于rJava的任何包(例如,xlsx)导致RStudio崩溃(当我尝试打开它时,R也崩溃了R.app直接)。在尝试了在Stack溢出和其他地方找到的一些修复后(下面有更多的详细信息),我到了一个加载点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 foundError:    package or namespace load failed for ‘rJava’但是,如果我从命令行调用R,然后加载rJava或任何依赖于rJava,它似乎有效(或者至少我没有收到任何错误消息)。我尝试过许多不同的修复尝试,其中一些尝试过几次,但不太记得我按照什么顺序做了什么(我没有意识到这将是一个烂摊子,也没有真正地跟踪),但下面是它的要点:在我的.bash_profile(按这个答案):导出JAVA_HOME=“/usr/libexec/java_home-v1.8”导出LD_Library_PATH=$JAVA_HOME/jre/lib/server从命令行重新配置java,如下所示:Sudo R CMD javareconf-n查证options("java.home")发现这个被设置为NULL..我尝试将其设置为这个问题):options(“java.home”=“/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre”)安装了最新的Java开发工具包并重新安装rJava从源头(不记得我在哪里找到的那个)。在尝试所有这些的时候,我能够加载rJava没有崩溃的R,而是得到了上面的错误信息。此外,当我退出RStudio时,它似乎正常关闭,但随后会弹出一条“RStudio意外退出”消息,表明程序在试图关闭时已经崩溃。我终于决定安装Java for OS X 2014-001(Java 6),因为我似乎已经没有选择了。现在,当我打开R或RStudio时,“这个软件需要Java 6”弹出消息就不再出现了。但是,我还是得到了.onLoad failed in loadNamespace() for 'rJava'上面张贴的错误信息。在回顾一些我已经看过的帖子时,我注意到另一个如此回答这是我以前忽略的,它建议使用以下命令行代码打开RStudio,这些命令行代码为RStudio提供了正确的Java路径:LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server:OPEN-一个RStudio它打开了一个RStudio窗口,我还能够加载rJava以及依赖于它的包,而不产生错误。最后,我尝试从命令行运行R(这是我以前没有做过的)。结果是在命令行中加载rJava或任何依赖于rJava工作,并且不会抛出任何错误。所以,我现在可以rJava如果我使用为RStudio提供java路径的代码从命令行打开RStudio,则可以正常工作(如上所述)。但是,我想找到一种方法来解决根本的问题,不管它是什么,这样就可以通常的Mac方式打开RStudio,而不需要命令行杂念。我还担心安装旧版本的Java可能会造成问题。有没有人知道如何诊断和解决这个问题?
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

我有同样的问题,经历了和你一样的步骤。允许通过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添加标志以强制覆盖现有文件/链接。


查看完整回答
反对 回复 2019-06-23
?
繁星coding

TA贡献1797条经验 获得超4个赞

在OSXElCapitan 10.11上,用户没有写入/usr/lib的权限。因此,可以使用以下命令:

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


查看完整回答
反对 回复 2019-06-23
  • 3 回答
  • 0 关注
  • 615 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信