12
我想在jni中將jbyteArray轉換爲本地c字符串(char *)?不幸的是,我找不到有關如何做到這一點的任何文件。我在c代碼中使用以下原型調用java函數。如何將jbyteArray轉換爲jni中的原生char *?
public static byte[] processFile(byte[] p_fileContent)
在c代碼中,我調用這個函數返回一個字節數組。這個字節數組的內容是一個java字符串。但我需要將其轉換爲C字符串。
jbyteArray arr = (jbyteArray) env->CallObjectMethod(clsH, midMain, jb);
printf("%s\n", (char*) arr);
您的鏈接已損壞。請更新。 –
@DRH將1.4.2鏈接更新爲1.5鏈接並沒有太大的改進。 – EJP
小心將null結束。一般來說,文件內容不會以null結尾; C(++)字符串函數可能會窒息。爲了可靠地解決這個問題,你必須將文件字節複製到一個字節大的緩衝區中,並將最終字節設置爲零 –