我正在尝试将Jstring转换为本地Go字符串,但是无法转换。实际上,我已经使用Java创建了JNI文件,通过使用JNI文件,我已经在c ++中创建了头文件(.h文件)。之后,我在Go中使用头文件来调用JNI方法。我可以通过Java代码调用Go DLL,但在Go中却得到一个空字符串。
//Go Code:
//''''''''''''''''''''''''''''''
//export Java_CallingMethodjni_
func Java_CallingMethodjni_(env *C.JNIEnv, clazz C.jclass, certtype
C.jstring, filepath C.jstring) C.jstring {
fmt.Println("CallingJava_CallingMethodjni_jni_CallingMethodjni...")
fmt.Print(string(filepath))
// unable to read file path
var js string = string(filepath)
}
//'''''''''''''''''''''''''''''''''''''''''''''''''''''''
//C++ header :
// '''''''''''''''''''''''''''''''''''''''
#include <jni.h>
#ifndef _Included_CallingMethodjni_
#define _Included_CallingMethodjni_
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL Java_CallingMethodjni_
(JNIEnv *env, jobject obj, jstring javaString, jstring javaString1);
#ifdef __cplusplus
}
#endif
#endif