JNI에서 문자열 다루기 3/3
$ vi Greeting.cpp#include <jni.h>
#include <string>
jstring greeting
(
JNIEnv *env,
jobject thiz,
jstring name
)
{
//convert java-string to c-string
const char *cName = env->GetStringUTFChars(name, nullptr);
std::string msg = "Hello, " + std::string(cName);
env->ReleaseStringUTFChars(name, cName);
//convert c-string to java-string
jstring ret = env->NewStringUTF(msg.c_str());
return ret;
}
JNIEXPORT jint JNICALL JNI_OnLoad
(
JavaVM *vm,
void *reserved
)
{
JNIEnv *env;
if(vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6)) {
return -1;
}
JNINativeMethod nm {
const_cast<char*>("greeting"),
const_cast<char*>("(Ljava/lang/String;)Ljava/lang/String;"),
reinterpret_cast<void*>(greeting)
};
jclass cls = env->FindClass("Client");
env->RegisterNatives(cls, &nm, 1);
return JNI_VERSION_1_6;
}Last updated