2013-03-23 3 views
0

누구든지 jni를 통해 춘분을 시작하는 방법을 알고 있습니까? JNI_CreateJavaVM (&)을 사용하여 jvm을 호출 할 수있었습니다. (void **) & env, & vm_args); org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar의 메인 클래스가 있습니다. 실행기 인수를 춘분 실행 프로그램에 전달하는 방법은 무엇입니까? 나는 이런 식으로하려고 노력했다 ... 어떤 방법으로 논쟁을 통과시켜야 하는가? 나는 뛰기 위해 그것을하려고 노력하고 있었다. 나는 리턴 코드 13을 얻고 있는데, 시작하지 않았다 ... 무엇이 문제 일 수 있는가?춘분 실행기 jni

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); 

답변

0

문자 배열 변환을 제외한 모든 작업을 올바르게 수행하고 있습니다. 내가 작성한 jobjectarray에 대한 WCHAR은 약간의 쓰레기 문자를 전달하는 것이었고, 따라서 이슈 ... 그래서 배운 교훈 : 당신이 jni를 넘겨주고있는 데이터를 조심하십시오. 가능한 경우 양측면을 다시 확인하십시오.