Есть java функция
public static String test(String a, Object... args) {
}
jni
jstring test(JNIEnv *env,char* str,jobject... args){
}
jni ругается на jobject... args.Как в jni сделать функцию с неограниченными аргументами?
Данный пример описывает приём параметров типа String
// Находим указатель на данный метод
mid = (*env)->GetStaticMethodID(env, class, "test", "(Ljava/lang/String;[Ljava/lang/Object;)V");
// Метод на С
static void test(JNIEnv * env, char* str, jobject o, ...) {
int i = 0;
int count = 0;
char * msg[100+1] = {0}; // количество аргументов, максимум 100
jobjectArray ja;
va_list list;
va_start(list, o);
do {msg[count] = va_arg(list,char *);
} while(msg[count] !=0 && ++count < 100);
va_end(list);
ja = (*env)->NewObjectArray(env, count, (*env)->FindClass(env, "java/lang/String"), (*env)->NewStringUTF(env, ""));
for(i=0;i!=count;i++) {
(*env)->SetObjectArrayElement(env,ja,i,(*env)->NewStringUTF(env, msg[i]));
}
(*env)->CallVoidMethod(env, o, mid, ja);
}
Пример вызова на C:
test(env, "MyName", o, "0", "a", "1", NULL);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вопрос таков,собрал проект с помощью мавен,получился jar with dependencies,из консоли intellej idea jar запускается и отлично работаетИз обычной виндовской...
если вместо while написать sout(a) то выводит все нужные ключи, а с while только первый попавшийся, подскажите что не так? то есть мне требуется вывести...
возникла такая проблемаМне нужно нарисовать график по Машине Тьюринга(зависимость кол-ва шагов от длины слова), когда я пытаюсь его нарисовать...