0

我正在开发 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 方法。

我可以调用代码的主要方法是

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

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

4

1 回答 1

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

调用静态和非静态方法有一些区别,但差别不大。我建议您从可行的东西开始,然后逐渐将其更改为您想要的东西。

于 2014-07-05T08:59:47.520 回答