rJava 错误加载 registerDoSNOW() 或任何外部 RStudio 进程
rJava errors loading registerDoSNOW() or any external RStudio process
> registerDoSNOW(makeCluster(4, type="SOCK")) Loading required package: methods Loading required package: DBI 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':
> dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so,
> 6): Library not loaded: @rpath/libjvm.dylib Referenced from:
> /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
> Reason: image not found Error: package ‘rJava’ could not be loaded
> Execution halted
如果我尝试使用 Knitr,也会发生这种情况。所以它与 registerDoSNOW() 无关,但与 rJava 和某种错误路径有关。
我研究了 rJava 未加载的常见解决方案(例如 )。
1) 我的Java是64位版本
2) library(rJava)
加载正常
3) 只有当我尝试使用 registerDoSNOW(makeCluster(4, type="SOCK"))
这只是在我从 3.3 升级到 R 3.4.2 后才开始发生的。我升级是因为 data.table
抱怨它无法使用 64 位架构。当我升级时,RStudio 不会 运行 Java,我通过执行 sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
修复了这个问题
我尝试了这里的解决方案 http://paulklemm.com/blog/2015-02-20-run-rjava-with-rstudio-under-osx-10-dot-10/ 但没有用。
java version "1.8.0_101" Java(TM) SE Runtime Environment (build
1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
我相信这个过程会解决您的问题。
从 r 终端安装 rJava
运行 ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
- 如果文件已经存在,用
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
覆盖它
运行 R CMD javareconf
在 mac 终端会话中
基本上,您只是设置了 rJava 需要的 java 文件,然后重新配置 R,以便它知道要查找的位置。
如果你得到类似/opt/X11/lib/*的错误,那么你需要安装XQuartz,它可以在here.
中找到
> registerDoSNOW(makeCluster(4, type="SOCK")) Loading required package: methods Loading required package: DBI 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':
> dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so,
> 6): Library not loaded: @rpath/libjvm.dylib Referenced from:
> /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
> Reason: image not found Error: package ‘rJava’ could not be loaded
> Execution halted
如果我尝试使用 Knitr,也会发生这种情况。所以它与 registerDoSNOW() 无关,但与 rJava 和某种错误路径有关。
我研究了 rJava 未加载的常见解决方案(例如
1) 我的Java是64位版本
2) library(rJava)
加载正常
3) 只有当我尝试使用 registerDoSNOW(makeCluster(4, type="SOCK"))
这只是在我从 3.3 升级到 R 3.4.2 后才开始发生的。我升级是因为 data.table
抱怨它无法使用 64 位架构。当我升级时,RStudio 不会 运行 Java,我通过执行 sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
我尝试了这里的解决方案 http://paulklemm.com/blog/2015-02-20-run-rjava-with-rstudio-under-osx-10-dot-10/ 但没有用。
java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
我相信这个过程会解决您的问题。
从 r 终端安装 rJava
运行
ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
- 如果文件已经存在,用
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
覆盖它
- 如果文件已经存在,用
运行
R CMD javareconf
在 mac 终端会话中
基本上,您只是设置了 rJava 需要的 java 文件,然后重新配置 R,以便它知道要查找的位置。
如果你得到类似/opt/X11/lib/*的错误,那么你需要安装XQuartz,它可以在here.
中找到