RODPS安装过程中rjava包无法加载

可能是万恶的r自动更新导致之前的函数、包不可用,重新踏上安装RODPS的坑

前提:

macOS 10.12.6

RStudio version 1.1.456

R 3.5.1

安装RODPS中,出现rjava包无法安装情况,类似如下:

> library(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 '/Users/kevin/Library/R/3.4/library/rJava/libs/rJava.so':

  dlopen(/Users/kevin/Library/R/3.4/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib

  Referenced from: /Users/kevin/Library/R/3.4/library/rJava/libs/rJava.so

  Reason: image not found

(因为我修复好了。。没有留下当初的报错信息。。)


debug心路历程:

1、 先了解到java高版本如11需要安装jre依赖的包,按照百度结果下载了

javax.activation-1.2.0.jar

jaxb-api-2.3.0.jar

jaxb-core-2.3.0.jar

jaxb-impl-2.3.0.jar

并将文件复制到lib下

重新运行R   并没有改变什么。。

2、后来大神说,不要用高版本,不稳定,好,重新安装 java8

各种搜索了解到链接rodps需要配置java环境,而java主要由两部分jdk 和jre两部分

oracle官网:https://www.oracle.com/technetwork/java/javase/downloads/index.html


RODPS安装过程中rjava包无法加载_第1张图片
RODPS安装过程中rjava包无法加载_第2张图片


RODPS安装过程中rjava包无法加载_第3张图片

对,java8 下载后会出现在这个路径下:


RODPS安装过程中rjava包无法加载_第4张图片


安装好,还需要配置环境变量

终端执行:

$ touch .bash_profile

然后

$ open -e .bash_profile

写入

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home

PATH=$JAVA_HOME/bin:$PATH:.

CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

export JAVA_HOME

export PATH

export CLASSPATH

注:JAVA_HOME=上图中的路径

保存

然后

$ source .bash_profile

然后

$ echo $JAVA_HOME

执行结果为路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home 

则配置成功

好,重新运行R,并没有改变什么。。 


3、又说好需要library(rJava)前手动定义JAVA_HOME 

嗯,执行 

Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre')

好,并没有改变什么。。 

4、最后,神来之笔

终端运行: sudo R CMD javareconf

好,好了。。。。。。。我也不知道为什么/

你可能感兴趣的:(RODPS安装过程中rjava包无法加载)