jni有谁照着jdk tutorial里的那个例子做过,成功了没?我完全照着做的,结果在生成dll时出错, fatal error C1083: Cannot open include file: 'jni.h': No such file or directory不知怎么回事用cl生成dll:
cl -IC:\Program Files\Java\jdk1.6.0_02\include -IC:\Program Files\Java\jdk1.6.0_02\include\win32 -LD HelloWorldImp.c -Fehello.dll我确定jni.h这个头文件是有的,在C:\Program Files\Java\jdk1.6.0_02\include里面,上面这个句子也没错啊,到底是哪里出错了?
cl -IC:\Program Files\Java\jdk1.6.0_02\include -IC:\Program Files\Java\jdk1.6.0_02\include\win32 -LD HelloWorldImp.c -Fehello.dll我确定jni.h这个头文件是有的,在C:\Program Files\Java\jdk1.6.0_02\include里面,上面这个句子也没错啊,到底是哪里出错了?
C:\Program Files\Java\jdk1.6.0_02\include里面,编译的时候却写:
C:\Program Files\Java\jdk1.6.0_02\include\win32
?
-IC:\Program Files\Java\jdk1.6.0_02\include\win32
这两个目录都要写的
cl -I"C:\Program Files\Java\jdk1.6.0_02\include" -I"C:\Program Files\Java\jdk1.6.0_02\include\win32" -LD HelloWorldImp.c -Fehello.dll
fatal error C1083: Cannot open include file: 'jni.h': Invalid argument
C:\Program Files\Java\jdk1.6.0_02\include\jni.h(21) : fatal error C1083: Cannot
open include file: 'stdio.h': No such file or directory晕,怎么变成了stdio.h
如果需要的话,该怎么做呢?
比如,在我的机器上是:
"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
-I"C:\Program Files\Microsoft Visual Studio 8\VC\include"
只是这样一来,VC的lib路径也要使用/LIBPATH选项手工加了。
这样会有影响吗?
就像我上面那样,写个完整的绝对路径(如果中间有空格就用引号扩起来),然后敲回车就OK了。"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
回车。呵呵。