jstring return im JNI-Programm

Dies ist JNI-Code.

Java-Code:

public class Sample1 {

    public native String stringMethod(String text);

    public static void main(String[] args)
    {
       System.loadLibrary("Sample1");
       Sample1 sample = new Sample1();

       String  text   = sample.stringMethod("world");

       System.out.println("stringMethod: " + text);    
   }
}

Cpp-Methode für die Funktion stringMethod:

JNIEXPORT jstring JNICALL Java_Sample1_stringMethod
   (JNIEnv *env, jobject obj, jstring string) {

 const char *name = env->GetStringUTFChars(string, NULL);//Java String to C Style string
 char msg[60] = "Hello ";
 jstring result;

 strcat(msg, name);
 env->ReleaseStringUTFChars(string, name);
 puts(msg);
 result = env->NewStringUTF(msg); // C style string to Java String
 return result;    
 }

Beim Ausführen meines Java-Codes. Ich habe das Ergebnis unten.

stringMethod: world

Aber ich habe die Zeichenfolge "world" mit "Hello" angehängt. Ich gebe hier auch die angehängte Zeichenfolge zurück. Aber warum bekomme ich nur "Welt" nicht "Hallo Welt". Wirklich habe ich mit diesem Code verwechselt. Was soll ich tun, um das Ergebnis mit angehängter Zeichenfolge zu erhalten?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage