21xrx.com
2025-03-23 11:48:24 Sunday
文章检索 我的文章 写文章
C语言调用Java方法实例
2023-06-15 14:14:13 深夜i     12     0
C语言 Java JNI 调用方法 虚拟机对象 类对象 方法ID 静态方法 字符串

在软件开发中,C语言和Java语言都是被广泛使用的编程语言。然而,有时候我们需要在C语言中调用Java方法,这就需要用到C语言的JNI接口。下面就给大家介绍一下C语言调用Java方法的实例。

首先,我们需要在Java中定义一个类和方法。比如下面的代码:

public class TestJava {
  public static void printMessage(String message) {
    System.out.println(message);
  }
}

然后,在C语言中调用该方法,可以按照以下步骤进行:

1. 在C语言中通过JNI接口获取Java虚拟机对象,例如:

JavaVM *jvm;
  JNIEnv *env;
  //...
  jint res = JNI_CreateJavaVM(&jvm, (void **)&env, &vm_args);
  //...

2. 通过JNI接口获取Java类对象和方法ID,例如:

jclass cls = (*env)->FindClass(env, "TestJava");
  jmethodID mid = (*env)->GetStaticMethodID(env, cls, "printMessage", "(Ljava/lang/String;)V");

3. 调用Java方法,例如:

(*env)->CallStaticVoidMethod(env, cls, mid, (*env)->NewStringUTF(env, "Hello, world!"));

通过以上几步,就可以实现在C语言中调用Java方法了。

  
  

评论区