4

我正在尝试在 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

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

谢谢!

4

2 回答 2

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" -共享 -o hello.dll HelloJNI.c

于 2013-11-07T13:17:06.173 回答
1

I got the answer:

I just need to use quotation marks, replace the backslash with slash and replace the underscores with spaces.

The command looks like this:

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

Thanks to all!!

于 2013-11-08T08:43:26.910 回答