【问题标题】:Return an array from C program to Java using JNI [duplicate]使用JNI将数组从C程序返回到Java [重复]
【发布时间】:2018-01-19 19:52:10
【问题描述】:

我试图将一个数组从 C 程序返回到 Java,但它返回错误“指向整数转换的不兼容指针返回 来自结果类型为“jint”(又名“int”)的函数的“int *”;取消引用 * [-Wint-conversion]"

我想要实现的是在java程序中使用this返回的数组。有人可以举例说明我如何做到这一点。

JNIEXPORT jint JNICALL Java_com_ControlStub_alg1Value
(JNIEnv *env, jobject jobj) {
    return 3212;       
}

例如,我使用上述方法并使用此函数仅在 Java 中显示其值,同样我需要它返回一个数组。作为Java新手,我发现很难做到这一点,请帮助我。 提前致谢!

Edit1:我已经检查了这个链接,但它让我感到困惑,正如我所说的,我还是 Java 新手。

Jave Native Interface(JNI)

【问题讨论】:

  • 除了带有答案的链接问题之外,请确保您确实使用了 javah 实用程序,这是您引用的教程中的一个步骤。
  • 我希望 JNI 重新运行一个简单的字符串数组,但是当我尝试按照已经回答的问题中的建议运行程序时,我得到 System.out.println(getStrings());输出类似于“[Ljava.lang.String;@1c59d3ae”,我不明白这意味着什么
  • 这是一个 Java 问题:它只是对字符串数组调用 Object.toString() 的结果。它表明该对象是一个字符串数组。

标签: java c arrays java-native-interface


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2011-09-02
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多