【问题标题】:trouble installing and loading rJava on mac El Capitan在 mac El Capitan 上安装和加载 rJava 时遇到问题
【发布时间】:2017-10-20 05:51:06
【问题描述】:

在安装 rJava 时遇到问题,尝试了大多数故障排除步骤 here 并且不起作用。

返回错误

Loading required package: rJava
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.4/Resources/library/rJava/libs/    rJava.so':

我正在使用最新版本的 R/Rstudio 和 Mac El Capitan

我也试过这个方法1,没用

sudo R CMD javareconf

然后,在 R 解释器中:

install.packages('rJava', type='source')
install.packages('xlsx', type='source')

方法二

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

错误返回 ln: /usr/local/lib/libjvm.dylib: 文件存在

方法 3 install.packages("rJava", type = "binary") 错误:tar:无法设置默认语言环境

处理默认语言环境错误

system("defaults write org.R-project.R force.LANG en_US.UTF-8")

在加载 rJava 时,还是同样的错误:

image not found

所以看起来它已经安装但不会加载

【问题讨论】:

标签: r installation rjava


【解决方案1】:

我也遇到了很多麻烦,最终发现以下 SO 线程是最相关的:rJava load error in RStudio/R after "upgrading" to OSX Yosemite

基本上从不安装rJava开始,在终端开始:

  1. 形成符号链接(注意,-f 标志将覆盖现有链接,避免您在“方法 2”中遇到的错误。

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

然后在 RStudio 中:

  1. 确保options('java.home') 不是NULL,并在必要时设置:

options("java.home"="/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre")

  1. 确保设置了JAVA_HOMELD_LIBRARY_PATH 环境变量,如果没有设置:

Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home') Sys.setenv(LD_LIBRARY_PATH='$JAVA_HOME/jre/lib/server')

在此之后,我能够在 RStudio 中安装和加载 rJava 包

install.packages('rJava')
library(rJava)

【讨论】:

  • 您的解决方案不起作用:错误:“rJava”的包或命名空间加载失败:“rJava”的 loadNamespace() 中的 .onLoad 失败,详细信息:(...)
  • 在步骤 (1) 之后,您可以在 /Library/Frameworks/R.framework/Versions/3.4/Resources/lib 目录中设置一个附加符号链接到 /usr/local/lib/libjvm.dylib 文件,而不是设置环境变量来调整路径:ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/
【解决方案2】:

这是我的解决方案

定义 R 库的路径,这里是 R 3.4 版本并打开目录:

cd /Library/Frameworks/R.framework/Versions/3.4/Resources/lib

删除 libjvm.dylib:

rm libjvm.dylib

从 Java 库创建指向 libjvm.dylib 的链接,这里是 jdk1.8.0_151 版本:

ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/server/libjvm.dylib libjvm.dylib

现在转到 R 或 RStudio 并尝试:

library("rJava")

【讨论】:

  • 这个方法对我有用。但是我从框架的 /lib 目录符号链接到已经符号链接的 /usr/local/lib/libjvmln -s /usr/local/lib/libjvm.dylib ./,而不是直接进入 java 8 目录。
【解决方案3】:

我为 java 9 做了同样的事情,它运行良好(macOS High Sierra),谢谢:

cd /Library/Frameworks/R.framework/Versions/3.4/Resources/lib
rm libjvm.dylib
ln -s /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/lib/server/libjvm.dylib libjvm.dylib

【讨论】:

    【解决方案4】:

    我已经尝试了这个网站上的大部分建议,但没有一个奏效。对我来说唯一可行的解​​决方案是在这个Github site 网站上。

    希望这能解决您的问题。

    【讨论】:

      【解决方案5】:

      问题是 rJava 无法安装在 RStudio (Version 1.0.136) 中。以下对我有用(macOS Sierra version 10.12.6)(找到here):

      步骤一:从here下载并安装javaforosx.dmg

      第 2 步:接下来,从 RStudio 内部运行命令:

      install.packages("rJava", type = 'source')
      

      【讨论】:

        猜你喜欢
        • 2017-03-19
        • 2016-12-16
        • 1970-01-01
        • 2016-02-22
        • 2016-10-31
        • 1970-01-01
        • 1970-01-01
        • 2016-10-10
        • 2016-02-09
        相关资源
        最近更新 更多