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

时间:2011-07-24 00:43:59

标签: java c++ gcc java-native-interface

我一直关注this tutorial,在第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。

3 个答案:

答案 0 :(得分:27)

打开终端并输入:

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 
如果没有安装,

应该可以解决问题。

答案 1 :(得分:5)

jni.h与JDK生活在一起。对我而言:jdk1.6.0_25/include/

默认情况下,我认为Ubuntu不会将JDK与开发库配合使用,因此请从Oracle下载latest JDK version并将其安装在某处。

或者你可以安装{@ 1}}作为@Leif建议,如果它适用于10.04 LTS。虽然,我个人更喜欢Sun / Oracle的那个。

答案 2 :(得分:2)

在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