JNI:从java调用C
我正在为Java代码编写一个C实现,它是一个简单的HelloWorld代码JNI:从java调用C,c,java-native-interface,C,Java Native Interface,我正在为Java代码编写一个C实现,它是一个简单的HelloWorld代码 #include <jni.h> #include <stdio.h> #include "HelloJNI.h" // Implementation of native method sayHello() of HelloJNI class JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
#include <jni.h>
#include <stdio.h>
#include "HelloJNI.h"
// Implementation of native method sayHello() of HelloJNI class
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
printf("Hello World!\n");
return;
}
有没有办法调用int-callmethodJNIENV*env,jint a,jint b,而这不是在方法JNIEXPORT void JNICALL java_HelloJNI_sayHelloJNIEnv*env,jobject thisObj中声明要调用的java代码?用C编写的本机方法可以做任何其他C程序可以做的事情,包括调用其他函数:
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
jint a=3, b=4;
printf("sum=%d\n", callmethod(env, a, b));
return;
}
@这是一个警告,不是一个错误。您应该为callmethod提供一个声明。
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
jint a=3, b=4;
printf("sum=%d\n", callmethod(env, a, b));
return;
}