1. 程式人生 > >Java native方法String轉char*以及String[]轉char**

Java native方法String轉char*以及String[]轉char**

JNIEXPORT void JNICALL Java_swap_swap_1float
  (JNIEnv *env, jclass cla, jstring in, jstring out)

        char *FN1;
        char *FN2;

       FN1  =  (char*)(*env)->GetStringUTFChars(env,in,NULL);
       FN2  =  (char*)(*env)->GetStringUTFChars(env,out,NULL);

反向轉換:

out = env->NewStringUTF(FN1);

String[]轉char**
/ *
 * Class:     com_xmu_engine_HTK
 * Method:    HVite
 * Signature: ()V
http://blog.chinaunix.net/uid-29421714-id-4152891.html
 * /
JNIEXPORT void JNICALL Java_com_xmu_engine_HTK_HVite
    (JNIEnv * env, jclass jc,jobjectArray strArray ){
    jstring jstr;
    jsize len = (*env)->GetArrayLength(env, strArray);
    char **pstr = (char **) malloc(len*sizeof(char *));
             
    int i=0;
            
    for (i=0 ; i<len;i++){
        jstr = (*env)->GetObjectArrayElement(env, strArray, i);
        pstr[i] = (char *)(*env)->GetStringUTFChars(env, jstr, 0);           
               
        }    
            
    HVite(len,pstr);
            
}