java - R CMD javareconf ➜ fatal error : 'jni.h' file not found

标签 java r macos

我正在尝试使用 Java 配置 R,在运行 sudo R CMD javareconf 后我得到了这个。

sudo R CMD javareconf                                                                  12:16:29  23.11.17
Java interpreter : /usr/bin/java
Java version     : 9.0.1
Java home path   : /Library/Java/JavaVirtualMachines/jdk-9.0.1.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/usr/local/Cellar/r/3.4.2/lib/R/include -DNDEBUG -I/System/Library/Frameworks/JavaVM.framework/Headers  -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/include   -fPIC  -g -O2  -c conftest.c -o conftest.o
conftest.c:1:10: fatal error: 'jni.h' file not found
#include <jni.h>
         ^~~~~~~
1 error generated.
make: *** [conftest.o] Error 1
Unable to compile a JNI program


JAVA_HOME        : /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
Java library path:
JNI cpp flags    :
JNI linker flags :
Updating Java configuration in /usr/local/Cellar/r/3.4.2/lib/R
Done.

我担心 fatal error :找不到“jni.h”文件

因此我可以安装 rJava。

有什么想法吗?谢谢!

最佳答案

好的!

似乎我解决了用 java 重新安装 R 的问题

brew reinstall R --with-openblas --with-java 然后我运行 sudo R CMD javareconf\JAVA_CPPFLAGS='-I/System/Library/Frameworks/JavaVM.framework/标题-I/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/

输出如下:

/usr/local/Cellar/r/3.4.2/lib/R/bin/javareconf: line 66: -I/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/: No such file or directory
Java interpreter : /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/java
Java version     : 9.0.1
Java home path   : /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
Java compiler    : /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/javac
Java headers gen.: /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/javah
Java archive tool: /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/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/usr/local/Cellar/r/3.4.2/lib/R/include -DNDEBUG -I/System/Library/Frameworks/JavaVM.framework/Headers  -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/include   -fPIC  -I/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/include/darwin  -c conftest.c -o conftest.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/Cellar/r/3.4.2/lib/R/lib -L/usr/local/opt/openblas/lib -L/usr/local/opt/gettext/lib -L/usr/local/opt/readline/lib -L/usr/local/lib -o conftest.so conftest.o -framework JavaVM -L/usr/local/Cellar/r/3.4.2/lib/R/lib -lR -lintl -Wl,-framework -Wl,CoreFoundation


JAVA_HOME        : /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
Java library path:
JNI cpp flags    : -I/System/Library/Frameworks/JavaVM.framework/Headers
JNI linker flags : -framework JavaVM
Updating Java configuration in /usr/local/Cellar/r/3.4.2/lib/R
Done.

我将 JAVA_HOME 设置为:

export JAVA_HOME="$(/usr/libexec/java_home)" 

这是正确的吗?或者最好不要定义 JAVA_HOME?

关于java - R CMD javareconf ➜ fatal error : 'jni.h' file not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47453141/

相关文章:

macos - 在 Mac OSX 上安装 Qt 的调试版本

macos - NetFSMountURLSync 无法使用自定义挂载点?

macos - 无法在 OSX Mavericks 上使用 MAMP 安装 drupal 7.24

java - 拦截并重定向到另一个端口的 Servlet

JAVA为什么arrayCopy是系统调用?

r - ggplot 堆叠条形排序失败,函数 desc 未知

在 R 中重复多个 NULL

java - Activemq 一段时间后不平衡消息

java - 以编程方式检索 Maven 依赖关系图

r - 在 [.data.table's j 中使用 lm(my_formula)