官方的JNIAPI指定了在创建 jstring 从 const char * . 这是报价单:
jstring
const char *
NewStringUTF jstring NewStringUTF(JNIEnv *env, const char *bytes);
构建新的 java.lang.String 来自字符数组的对象 采用改进的UTF-8编码。
java.lang.String
它是指 常量字符* 是我做的还是我必须做的 strdup 是我一个人吗?
常量字符*
strdup
NewStringUTF 在Java堆中创建一个新的字符串对象。字符串后面有 byte[] 或 char[] Java堆中的数组,它不共享传入的任何堆堆数据。
NewStringUTF
byte[]
char[]
所以,你不需要 strdup 无论如何,内容将被复制(并且可能被转换)到Java堆。