【问题标题】:How to return a list from java to JNI [duplicate]如何将列表从java返回到JNI [重复]
【发布时间】:2024-04-28 16:50:02
【问题描述】:

可能重复:
Passing string from Java into JNI
passing string array from java to C with JNI

我需要将一个列表 List 从 java 返回到 jni。我应该怎么做,我还需要在 JNI 端将返回的值转换为 std::string 的 array 。谁能告诉我该怎么做。

【问题讨论】:

  • 不是重复的:op 要求从 Java 中返回 List<string> 并进入 C++ 世界 (JNI)。 “可能重复”的问题是关于返回Object[],这是不同的。

标签: java java-native-interface


【解决方案1】:

Java 和 C 之间的数据交换可以仅使用原始类型来执行。所以通过JNI是不可能的。替代方案可能是 SWIGJavaCpp

【讨论】:

  • 有没有办法可以将 java 发送的 String[] 转换为 jni 结束时的 string[]
  • 没有。但你可以做到这一点。 *.com/questions/5972207/…
  • 即使我这样做了,我也无法将我的 jni 函数的返回类型指定为 const char*[]
  • 水坝人。你太懒了。 *.com/questions/6047166/…
  • 我所做的是将 List 转换为 String[] 并发送到 jni 类,然后我将 jobjectArray 转换为 vector 并将其传递给我的 cpp 类