我想将一个字符串传递给我正在编写的 JNI,它必须分配给一个 const char*。 下面提到的是我是如何做到的:
JNI...(...,jstring jstr...){
const char* str = env->GetStringUTFChars(jstr,0);
env->ReleaseStringUTFChars(str,jstr,0);
}
但是,如果我在分配给 jstring 之后 printf const char* str 与我直接在 JNI 中分配 str 值并从那里分配 printf 时相比,我看到的是不同的。
这是正确的做法吗?或者有没有其他方法可以将 java 中的字符串分配给 JNI 中的 const char* ?
最佳答案
java代码
public static native double myMethod( String path);
C 代码
JNIEXPORT jdouble JNICALL Java_your_package_structure_className_myMethod
(JNIEnv * env, jobject jobj, jstring pathObj) {
char * path;
path = (*env)->GetStringUTFChars( env, pathObj, NULL ) ;
关于java - 将字符串从 Java 传递到 JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247002/