过去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
?
如果您需要更多信息,请询问。
答案 0 :(得分:1)
看看这里:
你可以在macOS上找到关于如何处理R,Java和rJava的详细解释。
您必须采取一些步骤才能使整个过程顺利进行。
与R和JNI玩得开心!