background image

        

 

return

  

false

 

;

    }
    
    

 

//

 

启动方法

 

    jmethodID mid = env->GetStaticMethodID(serviceClass, szStartMethod , "([Ljava/lang/Stri
ng;)V");
    

 

if

 

 (env->ExceptionCheck() == JNI_TRUE || mid == NULL)

    

 

{

        env->ExceptionDescribe();
        env->ExceptionClear();
        FreeLibrary(jvmDll);
        printf("

 

查找启动方法失败。

 

");

        

 

return

  

false

 

;

    }
    
    
    
    

 

//

 

查找

 

String

 

类。

 

    jclass stringClass = env->FindClass("java/lang/String");
    

 

if

 

 (env->ExceptionCheck() == JNI_TRUE || stringClass == NULL)

    

 

{

        env->ExceptionDescribe();
        env->ExceptionClear();
        FreeLibrary(jvmDll);
        
        printf("

 

查找

 

String

 

类失败。

 

");

        

 

return

  

false

 

;

    }
    
    
    
    jstring jstr;
    jobjectArray args = 0;
    
    args = env->NewObjectArray(2, stringClass, 0);
    

 

for

 

 (

 

int

 

 i=0; i<nParamCount; i++)

    

 

{

        jstr = env->NewStringUTF(szParams[i]);
        

 

if

 

 (jstr == 0) 

 

{

            printf("

 

分配

 

String

 

失败

 

");

            

 

if

 

 (env->ExceptionOccurred()) 

 

{

                env->ExceptionDescribe();
                env->ExceptionClear();
            }
            
            

 

return

  

false

 

;

        }
        
        env->SetObjectArrayElement(args, i, jstr);
        

 

if

 

 (env->ExceptionCheck() == JNI_TRUE)

        

 

{

            printf("

 

设置参数失败

 

");

            

 

if

 

 (env->ExceptionOccurred()) 

 

{

                env->ExceptionDescribe();
                env->ExceptionClear();
            }
            

 

return

  

false

 

;