mynewstring.c
来自「jni java本地接口编程例子原代码,是java调用本地操作系统代码的接口」· C语言 代码 · 共 46 行
C
46 行
#include <jni.h>#include <stdio.h>#include "MyNewString.h"jstringMyNewString(JNIEnv *env, jchar *chars, jint len){ jclass stringClass; jmethodID cid; jcharArray elemArr; jstring result; stringClass = (*env)->FindClass(env, "java/lang/String"); if (stringClass == NULL) { return NULL; /* exception thrown */ } /* Get the method ID for the String(char[]) constructor */ cid = (*env)->GetMethodID(env, stringClass, "<init>", "([C)V"); if (cid == NULL) { return NULL; /* exception thrown */ } /* Create a char[] that holds the string characters */ elemArr = (*env)->NewCharArray(env, len); if (elemArr == NULL) { return NULL; /* exception thrown */ } (*env)->SetCharArrayRegion(env, elemArr, 0, len, chars); /* Construct a java.lang.String object */ result = (*env)->NewObject(env, stringClass, cid, elemArr); /* Allow local ref to intermediate char[] to be freed */ (*env)->DeleteLocalRef(env, elemArr); return result;}JNIEXPORT jstring JNICALLJava_MyNewString_nativeMethod(JNIEnv *env, jclass cls){ jchar str[] = {'a', 'b', 'c', 'd'}; return MyNewString(env, str, sizeof(str) / sizeof(jchar));}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?