2023-01-19 357
可能的重复:
如何在C ++应用程序中访问Java方法
假设我有这样的Java类:
class MyClass
{
String value = "a string value";
String getValue()
{
return value;
}
}
我已经尝试了几个小时来实现调用Java功能并返回字符串的JNI功能.
有人可以通过摘要向我展示如何使用JNI从C ++调用” GetValue”函数,并获得带有字符串变量值的JString变量.
//C ++
jobject result;
jMethodID method_getValue = m_env->GetMethodID(native_object,"getValue","()Ljava/lang/String;");
result = m_env->CallObjectMethod(native_object, method_getValue);
jMethodID method_getValue = m_env->GetMethodID(native_object,"getValue","()Ljava/lang/String;");
在这里,本机_object应该是myClass的类定义对象(JCLASS)
jmethodID GetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig);
而到这里:
result = m_env->CallObjectMethod(native_object, method_getValue);
nativetype callmethod(jnienv *env,jobignt obj,
jmethodid methodid,…);
您的callObjectMethod期望将第一个参数从myclass,没有JCLASS中的对象.
http://download.oracle.oracle.com/javase/javase/1.4.2/docs/guide/jni/spec/functions.html
所以这两个电话都错了…
可能是getMethodid …您绝对应该在那里检查null.
欢呼,
以上所述是小编给大家介绍的通过JNI从C ++调用JAVA函数,该功能返回字符串,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25843.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态