2017-09-25 39 views
2

我继续在安装和加载rJava时遇到问题。我有R 3.4.1('Single Candle'); Java v 9和mac OS 10.12.6。rJava,mac 10.12.6和Java v 9(R版本3.4.1)问题

我跟所有的使用终端来编辑我的〜/ .profile文件包含其中包括上市here步骤:

出口JAVA_HOME = $(在/ usr/libexec目录/ JAVA_HOME -v 9)

出口PATH = $ JAVA_HOME/bin:$ PATH

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

须藤 - [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,无效** penv,无效*参数); ^ 1生成警告。

当我运行

[R CMD INSTALL rJava_0.9-8.tar.gz

一切顺利,直到我得到一个错误,指出:

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

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

错误:配置从上面链接网站失败包“rJava”

米哈尔好心建议,以确保“的/ usr/libexec目录/ JAVA_HOME -v 9”“点”,以JDK和JRE没有。我不知道如何做到这一点。此外,当我尝试类似:

回声$ JAVA_HOME

我得到:

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

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

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

P.S.我原来的问题是在R,试图加载库(rJava),并得到这个错误:

错误:包或命名空间加载失败“rJava”: .onLoad在loadNamespace()为“rJava”失败,详细信息: 电话: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 原因:找不到图像

回答

0

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

> git clone https://github.com/mkowsiak/jnicookbook.git 
> cd jnicookbook/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安装(例如Apple的一个安装)。在这种情况下,您需要查看rJava的错误日志,以确定在那里使用了什么。

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

+0

非常感谢,我非常感谢!当我跑这个,我得到这个错误:/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/java -Djava.library.path =:./ lib -cp目标recipeNo001.HelloWorld 错误:无法找到或加载主类recipeNo001.HelloWorld 引起:java.lang.ClassNotFoundException:recipeNo001.HelloWorld make:*** [test]错误1 - 对这意味着什么的建议? Oo – Kate

+0

确保在运行“make test”之前调用:“make” - 我错过了将这一步放在说明中:( – mko

+0

我有同样的问题。用@mko消解,我检查了JDK是否可以编译JNI代码,但是现在的问题是如何让rJava使用正确的Java安装? –