致命错误:jni.h:没有这样的文件或目录

时间:2013-11-07 13:10:33

标签: java c interface native

我正在尝试在Windows上重新创建本教程: Java Native Interface (JNI)

当我尝试编译它时,我收到以下错误:

fatal error: jni.h: No such file or directory

 #include <jni.h>

compilation terminated.

我的命令行是:

gcc -Wl,--add-stdcall-alias -IC:\Program_Files\Java\jdk1.7.0_45\include -IC:\Program_Files\Java\jdk1.7.0_45\include\win32 -shared -o hello.dll HelloJNI.c

我在所有文件所在的文件夹中编译。

我确信此文件夹中的文件“jni.h”位于:

C:\Program Files\Java\jdk1.7.0_45\include

有谁知道为什么import语句不起作用?

谢谢!

2 个答案:

答案 0 :(得分:8)

下划线与空间不同。如果jni.h确实位于“程序文件”目录中,则应使用此命令:

  

gcc -Wl, - add-stdcall-alias -I“C:\ Program Files \ Java \ jdk1.7.0_45 \ include”-I“C:\ Program Files \ Java \ jdk1.7.0_45 \ include \ win32“-shared -o hello.dll HelloJNI.c

答案 1 :(得分:1)

我得到了答案:

我只需要使用引号,用斜杠替换反斜杠,并用空格替换下划线。

命令如下所示:

  

gcc -Wl, - add-stdcall-alias -I“C:/ Program   文件/的Java / jdk1.7.0_45 /包括”   -I“C:/ Program Files / Java / jdk1.7.0_45 / include / win32”-shared -o hello.dll HelloJNI.c

感谢所有!!