让R rJava在OSX上运行El Capitan

时间:2017-02-20 07:38:24

标签: java r macos java-native-interface rjava

过去24小时我一直在阅读各种解决方案。他们不适合我。

我试图在R中安装一个包glmulti。它想要rJava

需要Java的第6版(或1.6版),它被发现为javaforosx 2015-001。我安装了它。然后建议使用命令sudo R CMD javareconf重新配置R,我遇到了错误:

Java interpreter : /usr/bin/java
Java version     : 1.6.0_65
Java home path   : /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
System Java on macOS

trying to compile and link a JNI program 
detected JNI cpp flags    : -I/System/Library/Frameworks/JavaVM.framework/Headers
detected JNI linker flags : -framework JavaVM
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/System/Library/Frameworks/JavaVM.framework/Headers -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include    -fPIC  -Wall -mtune=core2 -g -O2  -c conftest.c -o conftest.o
conftest.c:1:10: fatal error: 'jni.h' file not found
#include <jni.h>

有很多网页建议做什么,但对我没什么用。

我看了一下这些建议 http://conjugateprior.org/2014/12/r-java8-osx/ 并且认为也许我应该使用Oracle的java 8。也安装了。

奇怪的是,安装java 8之后,系统首选项页面上的Java控制面板说我有java 1.8.0_121,给出的路径是 / Library / Internet Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java。

但是如果我做终端命令/usr/libexec/java_home我得

/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

如果我/usr/libexec/java_home -v 1.8我得到了

Unable to find any JVMs matching version "1.8".
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

其他人声称此命令应该给出1.8.0路径。

Oracle的测试网页声称我安装了1.8.0。 命令java -version声称我正在运行

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)

毕竟,第一个问题似乎是如何抓住jni.h

如果您需要更多信息,请询问。

1 个答案:

答案 0 :(得分:1)

看看这里:

http://www.owsiak.org/?p=3671

你可以在macOS上找到关于如何处理R,Java和rJava的详细解释。

您必须采取一些步骤才能使整个过程顺利进行。

与R和JNI玩得开心!