java jni.h_java-如何使jni.h被找到?

对我来说,确保包含JDK安装是一件简单的事情(我只有JRE)。 我的openJDK输出看起来像:

Java interpreter : /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Java version : 1.8.0_191

Java home path : /usr/lib/jvm/java-8-openjdk-amd64/jre

Java compiler : not present

Java headers gen.:

Java archive tool:

trying to compile and link a JNI program

detected JNI cpp flags :

detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm

gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o

conftest.c:1:17: fatal error: jni.h: No such file or directory

compilation terminated.

/usr/lib/R/etc/Makeconf:159: recipe for target 'conftest.o' failed

make: *** [conftest.o] Error 1

Unable to compile a JNI program

JAVA_HOME : /usr/lib/jvm/java-8-openjdk-amd64/jre

Java library path:

JNI cpp flags :

JNI linker flags :

Updating Java configuration in /usr/lib/R

Done.

实际上,我的$JAVA_HOME中没有openJDK文件。非常简单的补救措施:

sudo apt-get install openjdk-8-jre openjdk-8-jdk

(请注意,这是专门为安装openJDK而设计的,而不是从Oracle安装的)

事后一切顺利:

Java interpreter : /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Java version : 1.8.0_191

Java home path : /usr/lib/jvm/java-8-openjdk-amd64/jre

Java compiler : /usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/javac

Java headers gen.: /usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/javah

Java archive tool: /usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/jar

trying to compile and link a JNI program

detected JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux

detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm

gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/lib/jvm/java-8-openjdk-amd64/jre/../include -I/usr/lib/jvm/java-8-openjdk-amd64/jre/../include/linux -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o

g++ -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server -ljvm -L/usr/lib/R/lib -lR

JAVA_HOME : /usr/lib/jvm/java-8-openjdk-amd64/jre

Java library path: $(JAVA_HOME)/lib/amd64/server

JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux

JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm

Updating Java configuration in /usr/lib/R

Done.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值