【发布时间】:2012-06-22 09:56:53
【问题描述】:
我是 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.
如何运行以及设置执行文件路径的步骤是什么?请帮助我任何一个。谢谢。
【问题讨论】:
-
看起来您要么没有为 C 安装 JNI 库,要么没有将它包含在包含路径中。
-
恕我直言,鉴于您是 Java 新手,JNI 是您可能遇到的最糟糕的事情。我个人建议从 Java Learning Trail 开始,然后拿一本像 Head First Java 这样的好书。
-
为什么用 jni4net 标记?
标签: java java-native-interface jni4net jnienv