我是 Java 学习的新手,第一次想开始使用 JNI。我正在使用 Cygwin,我创建了一个扩展名为 .java (Helloworld.java) 的文件,如下所示:
class HelloWorld {
private native void print();
public static void main(String[] args) {
new HelloWorld().print();
}
static {
System.loadLibrary("HelloWorld");
}
}
然后我通过命令行 (javac Helloworld.java
) 编译文件,然后通过命令 javah –jni Helloworld
创建一个本地头文件
然后还通过创建一个 C 文件来实现:
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
在那之后,当我运行命令时
Gcc –wall –g Helloworld.c –o hello
在 Cygwin 的命令提示行中给出消息
helloworld.c:1:17: fatal error: jni.h: No such file or directory
compilation terminated.
如何运行以及设置文件执行路径的程序是什么?请任何人帮助我。谢谢。
最佳答案
我猜你还没有将 jni 目录添加到包含目录列表中,检查 http://social.msdn.microsoft.com/forums/is/vclanguage/thread/cd7f2d1d-f750-494c-a3b2-7d4186cfe51c了解详情。
关于java - Windows下JNI和C入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154020/