【问题标题】:R CMD javareconf ➜ fatal error: 'jni.h' file not foundR CMD javareconf ➜ 致命错误:找不到“jni.h”文件
【发布时间】:2017-11-23 10:24:49
【问题描述】:

我正在尝试使用 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' file not found

因此我可以安装 rJava。

有什么想法吗?谢谢!

【问题讨论】:

  • 您没有说明stackoverflow.com/questions/42562160/…github.com/Homebrew/homebrew-science/issues/3814 是否不起作用,因此在提供帮助之前其他人会知道您尝试做什么。
  • 天哪!我必须列出我尝试过的所有内容吗?不,这些都不起作用……我试过了。
  • 是的,事实上,你做到了。您是在向他人索取时间,因此尊重这一点至关重要,因为这表明您认为他们的时间很宝贵并感谢他们的帮助。希望其他人会尝试忽略权利问题并帮助您。
  • 我完全理解...但是,我尝试了无数种方法,但都没有奏效。我的猜测是 Java 9 的问题。

标签: java r macos


【解决方案1】:

好的!

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

brew reinstall R --with-openblas --with-java 然后我运行sudo R CMD javareconf \ JAVA_CPPFLAGS='-I/System/Library/Frameworks/JavaVM.framework/Headers -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更好?

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2020-10-02
    • 2015-01-20
    • 2014-12-21
    相关资源
    最近更新 更多