<分区> 分区>
我试图探索 Linux 中的 JNI 部分。我是C背景的。我试图使用 JNI,这样我就可以轻松地用 Java 制作 UI。我相信 UI 可以用 Javascript/html 制作。这可以很容易地调用 Java api。通过 Java Api,我可以调用 C/C++ API 的 .我相信这是制作 UI 的最简单方法。因此,我正在试用 JNI。这是我制作的示例代码。
Hello.java
public class Hello {
public native void sayHi(String who, int times);
static { System.loadLibrary("HelloImpl"); }
public static void main (String[] args) {
Hello hello = new Hello();
hello.sayHi(args[0], Integer.parseInt(args[1]));
}
}
后来
javac Hello.java
javah -jni Hello
现在,我正在写hello.c程序
#include <stdio.h>
#include "Hello.h"
JNIEXPORT void JNICALL Java_Hello_sayHi
(JNIEnv *, jobject, jstring, jint)
{
printf("Shreyas.. HEllo world...\r\n");
}
我在编译 hello.c 程序时遇到问题。
$ gcc -c hello.c -I/usr/java/jdk1.7.0_45/include/ -I/usr/java/jdk1.7.0_45/include/linux/
hello.c: In function ‘Java_Hello_sayHi’:
hello.c:5:3: error: parameter name omitted
hello.c:5:3: error: parameter name omitted
hello.c:5:3: error: parameter name omitted
hello.c:5:3: error: parameter name omitted
你能帮我解决这个问题吗?另外,您是否同意 JNI 是实现完整堆栈解决方案的好方法 - UI(JAVASCRIPT)+JAVA+C/C++->Linux?