基本数据类型的传递
第一步: 编写java
public class HelloWorld{
static {
System.loadLibrary("native");
}
public native int getInt(int in);
public native boolean getBoolen(boolean bol);
public native byte getByte(byte by);
public native long getLong(long lo);
public native char getChar(char ch);
public native double getDouble(byte db);
public native short getShort(short sh);
public native float getFloat(float fl);
public static void main(String[] args) {
}
}
第二步: 编译、获取,更改JNI头文件名
$ javac HelloWorld.java
$ javah HelloWorld
$ mv HelloWorld.h HelloWorld.c
第三步: 查看文件
#include <jni.h>
JNIEXPORT jint JNICALL Java_HelloWorld_getInt
(JNIEnv *, jobject, jint);
JNIEXPORT jboolean JNICALL Java_HelloWorld_getBoolen
(JNIEnv *, jobject, jboolean);
JNIEXPORT jbyte JNICALL Java_HelloWorld_getByte
(JNIEnv *, jobject, jbyte);
JNIEXPORT jlong JNICALL Java_HelloWorld_getLong
(JNIEnv *, jobject, jlong);
JNIEXPORT jchar JNICALL Java_HelloWorld_getChar
(JNIEnv *, jobject, jchar);
JNIEXPORT jdouble JNICALL Java_HelloWorld_getDouble
(JNIEnv *, jobject, jbyte);
JNIEXPORT jshort JNICALL Java_HelloWorld_getShort
(JNIEnv *, jobject, jshort);
JNIEXPORT jfloat JNICALL Java_HelloWorld_getFloat
(JNIEnv *, jobject, jfloat);
第四步: 总结JNI中的基本数据类型
Java类型 |
本地类型 |
描述 |
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位浮点型 |
下一节使用基本数据类型