可以通过以下步骤实现:
public class ExternalMethodExample {
public static native void printArray(int[] array);
static {
System.loadLibrary("ExternalMethodExample");
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
printArray(array);
}
}
#include <jni.h>
#include <stdio.h>
#include "ExternalMethodExample.h"
JNIEXPORT void JNICALL Java_ExternalMethodExample_printArray(JNIEnv *env, jclass cls, jintArray array) {
jsize length = (*env)->GetArrayLength(env, array);
jint *elements = (*env)->GetIntArrayElements(env, array, NULL);
printf("Array: ");
for (int i = 0; i < length; i++) {
printf("%d ", elements[i]);
}
printf("\n");
(*env)->ReleaseIntArrayElements(env, array, elements, 0);
}
gcc -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/win32" -shared -o libExternalMethodExample.so ExternalMethodExample.c
其中,$JAVA_HOME是Java安装路径。
请注意,以上步骤中的示例代码仅用于演示目的,实际使用时需要根据具体情况进行适当修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云