Java中JNI的使用详解第三篇:传参之基本数据类型

基本数据类型的传递

第一步: 编写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位浮点型

下一节使用基本数据类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容