1
私のJavaプログラムでクラスをインスタンス化しようとしました。私はいくつかのより簡単な例が働いていましたが、私のJavaクラスが文字列配列をコンストラクタとして受け取るという問題を打ちました。JNI経由で.cファイルからjava dllに文字列の配列を渡す
私の質問は、どのように.cファイルでJavaクラスに渡すことができる文字列配列を作成するのですか?
私は1つのjStringオブジェクトを渡すことができました。
私の.cファイルのメソッドを強調します。
jobject newClassInstance()
{
jmethodID MID_init;
jobject obj;
jstring name;
jobjectArray ret;
MID_init = (*env)->GetMethodID (env, jClass, "<init>", "([Ljava/lang/String;)V");
if (!MID_init) {
printf("Error: dllClass.<init>() not found\n");
return NULL;
}
name = (*env)->NewStringUTF(env,"Moo");
obj = (*env)->NewObject(env, jClass, MID_init, name);
if (!obj) {
printf("Error: failed to allocate an object\n");
return NULL;
}
return obj;
}
これ以上情報が必要な場合はお知らせください。
種類よろしく
アッシュ
これをありがとう。私はこれを他のさまざまなウェブサイトからまとめて管理していましたが、それをチェックするのは良いことです。 – user589195
JNIの全体については、「The Java™Native インターフェイスプログラマーズガイドと仕様」で説明しています。 http://java.sun.com/docs/books/jniからダウンロードできます。私はこのことからJNIの全知識を得ました。 – wpaulus