java - 让 R rJava 在 OSX El Capitan 上运行

标签 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

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

最佳答案

看这里:

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

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

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

享受 R 和 JNI 带来的乐趣!

关于java - 让 R rJava 在 OSX El Capitan 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42338899/

相关文章:

java - ActionBeanNotFoundException – 无效的 URL

java - 在处理可能为空的流时寻找解决 Stream.allMatch 等于 true 的优雅方法

macos - 在 SWIFT OS X 中以编程方式添加和删除 NSTextField

r - case_when - 数据框中的字符数据的奇怪行为

CSS 在 MacOS 上看到字体在 VPS 上看不到字体(Ubuntu 20.04 LTS)

ios - 在 OS X 上登录,在 iOS 和 OSStatus 上验证 -9809

java - 如何在 Java 中造成内存泄漏?

java - 无法删除 HSQLDB 文件

r - 关于使用R进行时间序列自动拟合的问题

r - 绘图标签中的表达式和新行