Java类型 |
Java本地C/C++类型 |
描述 |
Boolean |
Jboolean |
C/C++8位整型 |
Byte |
Jbyte |
C/C++带符号的8位整型 |
Char |
Jchar |
C/C++无符号的16位整型 |
Short |
Jshort |
C/C++带符号的16位整型 |
Int |
Jint |
C/C++带符号的32位整型 |
Long |
Jlong |
C/C++带符号的64位整型e |
Float |
Jfloat |
C/C++32位浮点型 |
Double |
Jdouble |
C/C++64位浮点型 |
Object |
Jobject |
任何Java对象,或者没有对应java类型的对象 |
Class |
Jclass |
Class对象 |
String |
Jstring |
字符串对象 |
Object[] |
jobjectArray |
任何对象的数组 |
boolean[] |
jbooleanArray |
布尔型数组 |
byte[] |
jbyteArray |
比特型数组 |
char[] |
jcharArray |
字符型数组 |
short[] |
jshortArray |
短整型数组 |
int[] |
jintArray |
整型数组 |
long[] |
jlongArray |
长整型数组 |
float[] |
jfloatArray |
浮点型数组 |
double[] |
jdoubleArray |
双浮点型数组 |
class Prompt { // native method that prints a prompt and reads a line private native String getLine(String prompt); public static void main(String args[]) { Prompt p = new Prompt(); String input = p.getLine("Type a line: "); System.out.println("User typed: " + input); } static { System.loadLibrary("Prompt"); } }
#include "Prompt.h" #include <iostream> JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt) { const char* str; str = env->GetStringUTFChars(prompt, false); if(str == NULL) { return NULL; /* OutOfMemoryError already thrown */ } std::cout << str << std::endl; env->ReleaseStringUTFChars(prompt, str); char* tmpstr = "return string succeeded"; jstring rtstr = env->NewStringUTF(tmpstr);//返回的时候,要生成一个jstring类型的对象 return rtstr; }