Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rJava、mac 10.12.6和Java v 9(R版本3.4.1)的问题_Java_R_Macos_Rjava - Fatal编程技术网

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

rJava、mac 10.12.6和Java v 9(R版本3.4.1)的问题,java,r,macos,rjava,Java,R,Macos,Rjava,我在安装和加载rJava时仍然遇到问题。我有R3.4.1(“单根蜡烛”);JavaV9和MacOS10.12.6 我遵循了列出的所有步骤,包括使用Terminal编辑我的~/.profile以包括: 导出JAVA_HOME=$(/usr/libexec/JAVA_HOME-v9) 导出路径=$JAVA_HOME/bin:$PATH 以及进行其他更改以将R连接到“正确的”Java。当我跑的时候 sudo R CMD javareconf 但是,我收到一条错误消息,上面说: 警告:“JNI_Crea

我在安装和加载rJava时仍然遇到问题。我有R3.4.1(“单根蜡烛”);JavaV9和MacOS10.12.6

我遵循了列出的所有步骤,包括使用Terminal编辑我的~/.profile以包括:

导出JAVA_HOME=$(/usr/libexec/JAVA_HOME-v9)

导出路径=$JAVA_HOME/bin:$PATH

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

sudo R CMD javareconf

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

警告:“JNI_CreateJavaVM”已弃用 [-Wdeprecated声明] 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

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

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

上面链接的站点的Michal善意地建议确保“/usr/libexec/java_home-v 9”指向JDK而不是JRE。我不知道该怎么做。还有,当我尝试以下方法时:

echo$JAVA_主页

我得到:

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

我如何知道这是JDK还是JRE

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

另外,我最初的问题是在R中,试图加载库(rJava),但出现以下错误:

错误:“rJava”的包或命名空间加载失败: .onLoad在“rJava”的loadNamespace()中失败,详细信息: 调用:dyn.load(文件,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
原因:找不到映像

您可以执行以下操作来测试Java 9是否为JDK。请执行以下操作:

> git clone https://github.com/mkowsiak/jnicookbook.git
> cd jnicookbook/recipes/recipeNo001
> export JAVA_HOME=$(/usr/libexec/java_home -v 9)
> export PATH=$JAVA_HOME/bin:$PATH
> make
> make test
如果你看到

Hello world!
最后,这意味着您的JDK可以编译JNI代码。现在,如果它能工作,就意味着rJava仍然使用不正确的Java安装(例如,苹果的安装)。在这种情况下,您需要查看rJava的错误日志,以确保那里使用了什么

我希望这至少对你有一点帮助。

我遵循了这一点,特别是:

管理员帐户用户

在终端发出以下命令:

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

安装成功了

非常感谢,我真的很感激!当我运行此程序时,我遇到以下错误:/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/Java-Djava.Library.path=:/lib-cp target recipeNo001.HelloWorld错误:找不到或加载主类recipeNo001.HelloWorld,原因是:Java.lang.ClassNotFoundException:recipeNo001.HelloWorld make:**[测试]错误1——对这意味着什么有什么建议吗?O.oMake确保在运行“make test”之前调用“make”-我没有将此步骤放入说明中:(我也遇到了同样的问题。使用@mko sugestion,我检查了JDK是否可以编译JNI代码,但现在的问题是如何使rJava使用正确的Java安装?请看一下这里:这里的问题是R3.4使用了新的clang并支持OpenMP。您可能还必须设置正确的clang设置:(一般来说,R3.4+macOS+rJava可能需要相当多的努力:(