JNI开发之创建int数组返回

来源:互联网 发布:深入php 编辑:程序博客网 时间:2024/06/05 08:38

前言:如何使用JNI创建int数组并且返回给java。

----------分割线---------

JNI创建int数组返回java。

java代码:

public static void main(String[] args) {TestJni tj = new TestJni();int[] javaLongArray = tj.javaIntArray(12);for (int i : javaLongArray) {System.out.print(i + " ");}}// 利用c创建一个len长度的int数组public native int[] javaIntArray(int len);// 加载动态库static {System.loadLibrary("JNI");}
C代码:
#include"com_fly_TestJni.h" JNIEXPORT jintArray  JNICALL Java_com_fly_TestJni_javaIntArray(JNIEnv *env, jobject job, jint len){//jintArray(JNICALL *NewIntArray)(JNIEnv *env, jsize len);//第一个参数//第二个参数 创建数组的长度jintArray jntarray = (*env)->NewIntArray(env, len);//数组转化为 jint* 类型jint * jintp = (*env)->GetIntArrayElements(env, jntarray, NULL);for (int i = 0; i < len; i++){   //jint 本质long 所以可以赋值jintp[i] = i * 10;}//释放同步(*env)->ReleaseIntArrayElements(env, jntarray, jintp, 0);//返回return jntarray;}
运行截图:


----------完---------

原创粉丝点击