我使用的是Red Hat 5,无法安装rJava
Package
我运行了以下命令:
$ R CMD javareconf -e
我收到以下错误: -
尝试编译并链接JNI程序检测到的JNI cpp标志:
检测到JNI链接器标志:
gcc -m64 -std = gnu99 -I / usr / include / R -DNDEBUG -I / usr / local / include
-fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = generic -fpic -fPIC -c conftest.c - o conftest.oconftest.c:1:17:致命错误:jni.h:没有这样的文件或目录
编译终止。
make:*** [conftest.o]错误1
无法编译JNI程序
java -version如下: -
java版“1.8.0_91”
Java(TM)SE运行时环境(版本1.8.0_91-b14)
Java HotSpot(TM)64位服务器VM(版本25.91-b14,混合mod
JAVA_HOME = /usr/java/jdk1.8.0_91/jre
任何人都可以帮我编译JNI程序
答案 0 :(得分:0)
我在Ubuntu上遇到过类似的问题。确定您缺少的文件在哪里
find / -name jni.h 2> /dev/null
可能会像
一样/usr/lib/jvm/java-8-openjdk-amd64/include
您可能也缺少jni_md.h,然后执行类似下面的操作,其中路径已针对上面确定的路径进行更正。
R CMD javareconf JAVA_CPPFLAGS="-I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux/"
答案 1 :(得分:0)
您需要使用JDK而不是JRE。 JDK包含JNI编译所需的库和头文件。
通常,您必须重新配置R并确保指向正确的Java安装。
看看这里:http://www.owsiak.org/?p=3671你可以在那里找到你必须采取的所有步骤的详细解释,以便让R正常使用Java。为macOS准备了解释,但它也适用于基于Linux的系统 - 几乎没有修改。
总结一下:
重新配置R
sudo R CMD javareconf \
JAVA_HOME=${JAVA_HOME} \
JAVA=${JAVA_HOME/bin/java \
JAVAC=${JAVA_HOME}/bin/javac \
JAVAH=${JAVA_HOME}/bin/javah \
JAR=${JAVA_HOME}/bin/jar \
JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/server \
JAVA_CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux"
启动R并安装需要Java的软件包