пусковая установка равноденствия jni

Кто-нибудь знает, как запустить равноденствие через jni? Мне удалось вызвать jvm с помощью JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); Я получил основной класс org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar. Теперь, как передать аргументы пусковой установки в пусковую установку равноденствия? Я пытался сделать так... Какому методу я должен передать аргументы? я пытался сделать это для бега... Я получаю код возврата 13, но он не запускается... в чем может быть проблема?

if(mainObject != NULL) {
                runMethod =  env->GetMethodID( mainClass, "run", "([Ljava/lang/String;)I");
                if(runMethod != NULL) {
                    methodArgs =  createRunArgs(env, equinoxArg2s);
                    if(methodArgs != NULL) {
                        //results->launchResult = 0;
                         runresult = env->CallIntMethod(mainObject, runMethod, methodArgs);
                        env->DeleteLocalRef(methodArgs);

person Dav    schedule 23.03.2013    source источник


Ответы (1)


Я делаю все правильно, кроме преобразования массива символов. WCHAR для jobjectarray, который я создал, передавал некоторые ненужные символы, отсюда и проблема... Итак, извлеченный урок: остерегайтесь данных, которые вы передаете через jni. Сделайте двойную проверку с обеих сторон, если можете.

person Dav    schedule 23.03.2013