【发布时间】:2011-08-29 13:34:31
【问题描述】:
我发现这段特殊的代码非常困难(尤其是因为我一周前才开始使用 C)。
我一直在努力寻找正确的语法以在 C 中正确创建 java 字符串数组(即 jstring 对象数组,即表示 jstring 对象数组的对象)。我一直在使用以下资源,并从中构建了可编译的代码。我不确定之后发生的错误是由于语法不正确还是由于完全不同的原因。由于代码大部分是孤立的,我假设语法不正确。
(Suns Native Programming Documentation & Suns JNI documentation)
代码可以编译,但在通过“FindClass”代码行后,会发送一个 SIGSEGV 信号,该信号会终止 C 进程:
jint size = 5;
jclass StringObject = (*env)->FindClass(env, "java/lang/String");
jobjectArray sampleMessage = (*env)->NewObjectArray(env, size, StringObject, NULL);
jobjectArray returnArray = (jobjectArray) (*env)->NewObjectArray(env, messageCount, &sampleMessage, 0);
谁能指出我对此有用的资源?或者确认语法正确。
编辑
我的大部分问题是调试此代码导致了问题。我没有时间缩小复制因素,但通过 eclipse 在 gdb-client 中跨过 JNI 代码不起作用。
【问题讨论】:
标签: java string multidimensional-array java-native-interface