JNI - 如何將 char 轉換成 jstring

軍說網事發表於2015-12-31

如何將JNI中將 char* 字串轉換成 jstring? 這個問題困擾了我好久,也用不同的方法進行除錯過,都沒有成功。

今天無意中除錯成功了下面的程式碼,可以方便的將char*轉換成jstring。


1.  jstring   CharTojstring(JNIEnv*   env,   char*   str)  

2.  {  

3.      jsize   len   =   strlen(str);  

4.    

5.      jclass   clsstring   =   (*env)->FindClass(env, "java/lang/String");  

6.      jstring   strencode   =   (*env)->NewStringUTF(env,"GB2312");  

7.    

8.      jmethodID   mid   =   (*env)->GetMethodID(env,clsstring,   "<init>",   "([BLjava/lang/String;)V");  

9.      jbyteArray   barr   =   (*env)-> NewByteArray(env,len);  

10.   

11.     (*env)-> SetByteArrayRegion(env,barr,0,len,(jbyte*)str);  

12.     return (jstring)(*env)-> NewObject(env,clsstring,mid,barr,strencode);  

13. }  


上面的程式碼我除錯通過的。



相關文章