java - rJava、mac 10.12.6 和 Java v 9(R 版本 3.4.1)的问题

标签 java r macos rjava

我仍然无法安装和加载 rJava。我有 R 3.4.1('单蜡烛'); Java v 9 和 mac OS 10.12.6。

我按照列出的所有步骤 here其中包括使用终端编辑我的 ~/.profile 以包括:

导出 JAVA_HOME=$(/usr/libexec/java_home -v 9)

导出 PATH=$JAVA_HOME/bin:$PATH

并进行其他更改以将 R 连接到“正确的”Java。当我跑

sudo R CMD javareconf

但是,我收到一条错误消息,上面写着:

警告:不推荐使用“JNI_CreateJavaVM”
[-Wdeprecated-declarations]
JNI_CreateJavaVM(0, 0, 0);
^
/System/Library/Frameworks/JavaVM.framework/Headers/jni.h:1937:1:注意:
“JNI_CreateJavaVM”已在此处明确标记为已弃用
JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args);
^
生成 1 个警告。

当我运行时

R CMD 安装 rJava_0.9-8.tar.gz

一切顺利,直到我收到一条错误消息:

检查是否可以编译 JNI 程序...配置:错误:无法编译简单的 JNI 程序。有关详细信息,请参阅 config.log。

确保您已在 R 中安装并正确注册了 Java 开发工具包。
如果有疑问,请以 root 身份重新运行“R CMD javareconf”。

错误:包“rJava”的配置失败

来自上面链接的站点的 Michal 建议确保“/usr/libexec/java_home -v 9”“指向”JDK 而不是 JRE。我不知道该怎么做。另外,当我尝试类似的事情时:

回声 $JAVA_HOME

我得到:

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home

我怎么知道这个 JDK 还是 JRE?

由于我的错误消息,我认为我有一个 JNI 问题,但我不确定如何开始处理该问题。任何有关使用 Michal 的教程可能出错的见解将不胜感激!

附言我最初的问题是在 R 中,试图加载库(rJava)并得到这个错误:

错误:“rJava”的包或命名空间加载失败:
.onLoad 在“rJava”的 loadNamespace() 中失败,详细信息:
调用:dyn.load(file, DLLpath = DLLpath, ...)
错误:无法加载共享对象'/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):库未加载:@rpath/libjvm.dylib
引用自:/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
原因:找不到图片

最佳答案

我关注了这个 link , 尤其:

管理员帐号用户

在终端发出以下命令:

export JAVA_HOME=${JAVA_HOME:-$(/usr/libexec/java_home)} 
export LIBJVM=$(find "${JAVA_HOME}" -name 'libjvm.dylib')
R CMD javareconf JAVA_LIBS="${LIBJVM}" JAVA_LD_LIBRARY_PATH="${LIBJVM}" JAVA_CPPFLAGS="'-I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin -I$(dirname "${LIBJVM}")'"
ln -fs "$LIBJVM" /Library/Frameworks/R.framework/Libraries

安装成功!

关于java - rJava、mac 10.12.6 和 Java v 9(R 版本 3.4.1)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415389/

相关文章:

r - 访问r中工作目录中不同文件夹中的数据

r: zApply 在并行计算中

macos - 有没有人在 Snow Leopard 中成功构建过 PyObjC 应用程序?

javascript - Nodemon 和 Redwood-Broker

macos - 修复损坏的 Macport

java - 使用 application.properties 在 Spring 中配置枚举

Java没有为按钮播放声音

java - 正则表达式显示错误答案

r - 在 for 循环中绘制 R 中的数据帧

java - 比较两个对象中的字段并在 Java 中将一个更新为另一个