我正在尝试在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语句不起作用?
谢谢!
答案 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
感谢所有!!