过去 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
?
如果您需要更多信息,请直接询问。
最佳答案
看这里:
你可以找到关于如何在 macOS 上处理 R、Java 和 rJava 的非常详细的解释。
您必须采取一些步骤才能使整个过程顺利进行。
享受 R 和 JNI 带来的乐趣!
关于java - 让 R rJava 在 OSX El Capitan 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42338899/