在JNI中调用带有参数的java方法

时间:2014-07-03 03:04:29

标签: java-native-interface jnienv

我正在研究JNI程序,我无法从我的C ++程序中调用java方法。

java方法的代码片段在这里

public static void getTables(Connection conn) throws Exception {

    String TABLE_NAME = "TABLE_NAME";
    String TABLE_SCHEMA = "TABLE_SCHEM";
    String[] TABLE_TYPES = {"TABLE"};
    DatabaseMetaData dbmd = conn.getMetaData();

    ResultSet tables = dbmd.getTables(null, null, null, TABLE_TYPES);
    while (tables.next()) {
      System.out.println(tables.getString(TABLE_NAME));
          System.out.println(tables.getString(TABLE_SCHEMA));
    }
  }

我想从C ++程序中调用这个java方法。

我可以调用main方法 因为代码是

midMain       = env->GetStaticMethodID(clsH, "main", "([Ljava/lang/String;)V");

我想像这样调用getTables方法。请帮我解决一下。

1 个答案:

答案 0 :(得分:0)

请看 https://stackoverflow.com/a/14872927/755804 可能这些: https://stackoverflow.com/a/14021142/755804 https://stackoverflow.com/a/15941319/755804 https://stackoverflow.com/a/21109940/755804

调用静态和非静态方法之间存在一些差异,但并不多。 我建议你从一些有用的东西开始,然后逐渐将它改变成你想要的东西。