JNI C创建Java字符串数组
Posted free-thinker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JNI C创建Java字符串数组相关的知识,希望对你有一定的参考价值。
创建Java字符串数组
注:jni中没有与String[]对应的数据类型,所以需要创建对象数组,循环添加jstring对象
#include <Sample3.h>
#include <string.h>
#include <stdlib.h>
#define ARRAY_LENGTH 5
JNIEXPORT jobjectArray JNICALL Java_Sample3_stringMethod
(JNIEnv *env, jobject obj, jstring string)
{
jclass objClass = (*env)->FindClass(env, "java/lang/String");
jobjectArray texts= (*env)->NewObjectArray(env,
(jsize)ARRAY_LENGTH, objClass, 0);
jstring jstr;
char* sa[] = { "Hello,", "world!", "JNI", "很", "好玩" };
int i=0;
for(;i<ARRAY_LENGTH;i++)
{
jstr = (*env)->NewStringUTF( env, sa[i] );
(*env)->SetObjectArrayElement(env, texts, i, jstr);//必须放入jstring
}
return texts;
}
以上是关于JNI C创建Java字符串数组的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA平台下JNI编程—本地C代码创建Java对象及引用