私は Java プログラミングが初めてで、基本的な質問があります。文字列配列を JNI レイヤーに渡したいと思います。JNI関数内で配列に文字列を入力できますか? すべての投稿では、JNI レイヤーから文字列配列を返す方法、または JNI レイヤーで文字列配列を解析する方法について説明しています。出来ますか?
ありがとう
私は Java プログラミングが初めてで、基本的な質問があります。文字列配列を JNI レイヤーに渡したいと思います。JNI関数内で配列に文字列を入力できますか? すべての投稿では、JNI レイヤーから文字列配列を返す方法、または JNI レイヤーで文字列配列を解析する方法について説明しています。出来ますか?
ありがとう
はい、可能です。ここに、あなたが望むことを正確に行う例があります。new String(char[])
Javaで JNI 側から配列と文字列を作成する必要があります (呼び出しに似ています)。Unicode と UTF-8 の両方がサポートされています (それぞれに JNI 関数セットがあります)。
#include <jni.h>
#include "ArrayHandler.h"
JNIEXPORT jobjectArray JNICALL Java_ArrayHandler_returnArray
(JNIEnv *env, jobject jobj)
{
jobjectArray ret;
int i;
char *message[5]= {"first",
"second",
"third",
"fourth",
"fifth"};
ret= (jobjectArray)env->NewObjectArray(5,
env->FindClass("java/lang/String"),
env->NewStringUTF(""));
for(i=0;i<5;i++) {
env->SetObjectArrayElement(
ret,i,env->NewStringUTF(message[i]));
}
return(ret);
}