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

2022-09-01 08:57:14

我一直在学习本教程,在步骤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。


答案 1

打开终端并键入:

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 

如果您没有安装它,应该做这个技巧。


答案 2

jni.h与JDK住在一起。对我来说,它是:.jdk1.6.0_25/include/

默认情况下,我不认为Ubuntu会有带有开发库的JDK,所以从Oracle下载最新的JDK版本并将其安装在某个地方。

或者,如果它适用于 10.04 LTS,则可以按照建议@Leif进行安装。虽然,我个人更喜欢Sun/Oracle的那个。openjdk


推荐