题 jni.h:没有这样的文件或目录


我一直在关注 本教程,在第5步,我从GCC获得以下输出:

    HelloWorld.c:1:17: error: jni.h: No such file or directory
    In file included from HelloWorld.c:3:
    HelloWorld.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
    HelloWorld.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’

我知道他包含的目录因系统而异,所以我尝试相应地调整命令,但我似乎无法在我的系统上找到正确的目录。我正在使用Ubuntu 10.04LTS。


27
2017-07-24 00:43


起源


+1为 no matter how simple, it should be beneficial to others as well. - Alex Gitelman


答案:


打开终端并输入:

locate jni.h

那应该告诉你每个名为jni.h的文件在你的系统上。我在ubuntu 11.04上,它位于:

/usr/lib/jvm/java-6-openjdk/include/jni.h
/usr/lib/jvm/java-6-sun-1.6.0.26/include/jni.h

您可能还需要从回购中获取它:

sudo apt-get install openjdk-6-jdk 

如果你没有安装它应该做的伎俩。


25
2017-07-24 00:52



现在我有了jon.h,我该怎么做才能完成我的建设?把它添加到我的路径? - bheussler
安装 sudo apt-get install openjdk-8-jdk,但仍然 locate jni.h 没有给我什么 - Daniel


jni.h 和JDK一起生活。对我来说是: jdk1.6.0_25/include/

默认情况下,我不认为Ubuntu会有JDK和开发库,所以下载 最新的JDK版本 来自Oracle并在某处安装它。

或者你可以安装 openjdk @Leif建议它是否适用于10.04 LTS。虽然,我个人更喜欢Sun / Oracle的那个。


5
2017-07-24 00:49





在Ubuntu 14.04中运行:

sudo apt-get install openjdk-7-jdk openjdk-7-jre-lib

现在,你有一个标题到/ usr / lib / jvm / java-7-openjdk-amd64 / include

对于OpenJDK 6:

sudo apt-get install openjdk-6-jdk openjdk-6-jre-lib

1
2018-01-16 08:39