jni将字符串转换为char数组

use*_*819 5 c++ java-native-interface

不熟悉c ++,有人可以帮助我添加cmdmyStr数组并将其传递给main()函数,这是我到目前为止:

JNIEXPORT void JNICALL Java_my_package_JNIActivity_callCmdLine(
    JNIEnv *env, jobject obj, jstring cmd)
{
    const char *nativeString = env->GetStringUTFChars(cmd, 0);
    env->ReleaseStringUTFChars(cmd, nativeString);

    char * myStr [] = {"v", nativeString};

    //int main(int argc, char *argv[])
    main(1, myStr); 
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*lin 7

好吧,在你完成它之前不要释放它.

char * nativeString;

{    const char * _nativeString = env->GetStringUTFChars(cmd, 0);
     nativeString = strdup (_nativeString);
     env->ReleaseStringUTFChars(cmd, _nativeString);
}

char * myStr [] = {"v", nativeString};
main(1, myStr); 

free (nativeString);
Run Code Online (Sandbox Code Playgroud)