【发布时间】:2010-12-05 15:20:24
【问题描述】:
假设我有一个这样的 Java 类:
class MyClass
{
String value = "a string value";
String getValue()
{
return value;
}
}
我已经尝试了好几个小时来实现一个调用 Java 函数并返回一个字符串的 JNI 函数。 有人可以通过 sn-p 向我展示如何使用 JNI 从 C++ 调用“getValue”函数并从“MyClass”获取具有 String 变量值的 jstring 变量。
// C++
jobject result;
jMethodID method_getValue = m_env->GetMethodID(native_object,"getValue","()Ljava/lang/String;");
result = m_env->CallObjectMethod(native_object, method_getValue);
【问题讨论】:
-
向我们展示您的尝试并告诉我们为什么它不可接受。
-
展示C++的一面怎么样?
-
公开你的吸气剂将是一个开始......
-
您是否从 Java 调用您的 C 程序。 JNI 必须由 JVM 启动。 C++程序可以调用java类,但是必须先从Java调用。
-
@JamesAnderson 实际上并非如此。该程序最初可以是 C 或 C++ 程序,它可以通过调用 API 启动 JVM 本身。基本上这与 OP 的实际问题无关。
标签: java c++ java-native-interface