1. Escribir una clase de prueba de Java
2. Usar la clase de prueba de Java para generar el archivo de cabecera C (no tengo conocimientos de C y C++, no estoy seguro de si el código no Java que aparece más adelante es C o C++. Por eso, en el tutorial lo llamaré C).
3. Usar el archivo de cabecera C para escribir código C
4. Generar la biblioteca C
5. Prueba de llamada desde Java
Paso 1: Escribir la clase de prueba de Java
El código es el siguiente:
package com.aijiao.test;
public class JNIDemo {
//定义一个方法,该方法在C中实现
public native void testHello();
public static void main(String[] args){
//加载C文件
System.loadLibrary("TestJNI");
JNIDemo jniDemo = new JNIDemo();
jniDemo.testHello();
}
}
Paso 2: Usar la clase Java para generar el archivo de cabecera C
El comando de generación es el siguiente:
javah -classpath . -jni com.aijiao.test.JNIDemo
Este comando debe ejecutarse en el directorio bin del proyecto de la clase de prueba Java.
La siguiente imagen muestra el archivo de cabecera generado.
Paso 3: Escribir código C con Visual Studio
1. Seleccionar Archivo -> Nuevo -> Proyecto
2. Seleccionar (Win32), ingresar el nombre del proyecto, la dirección del proyecto y hacer clic en Aceptar.
3. Hacer clic directamente en Siguiente.
4. Aquí seleccionar DLL, proyecto vacío, y luego hacer clic en Finalizar.
5. Se genera la estructura de proyecto como la siguiente.
6. Hacer clic derecho en la carpeta de archivos de origen, seleccionar Agregar -> Clase.
7. Hacer clic directamente en Agregar.
8. Ingresar el nombre de la clase y hacer clic en Finalizar. (Clase C++)
9. En el directorio include de tu directorio JDK hay un archivo jni.h, en el directorio include/win32 hay un archivo jni_md.h, y también está el archivo de cabecera C en el directorio bin del proyecto Java. Cópialos juntos al directorio TestJNI del proyecto C: (el nombre del proyecto actual es TestJNI, y hay otro directorio TestJNI dentro del directorio del proyecto: directorio del proyecto -> TestJNI -> jni.h, com_aijiao_test_JNIDemo.h, jni_md.h) como se muestra a continuación:
El directorio actual es el directorio del proyecto.
Los archivos copiados: jni.h, com_aijiao_test_JNIDemo.h y jni_md.h.
10. Hacer clic derecho en la carpeta de archivos de cabecera del proyecto C, seleccionar Agregar -> Elemento existente.
11. Seleccionar jni.h, com_aijiao_test_JNIDemo.h y jni_md.h.
12. Abrir el archivo com_aijiao_test_JNIDemo.h.
13. Cambiar #include <jni.h> a #include "jni.h"; el mensaje de error desaparece.
14. Escribir el siguiente código en el archivo TestJNI.cpp:
Código:
#include "com_aijiao_test_JNIDemo.h"
#include <iostream>
#include <stdio.h>
JNIEXPORT void JNICALL Java_com_aijiao_test_JNIDemo_testHello
(JNIEnv *, jobject) {
printf("this is C++ print");
}15. Configurar el proyecto C: hacer clic derecho en la solución y seleccionar Propiedades.
16. Realizar la siguiente configuración.
Paso 4: Hacer clic derecho en el proyecto y seleccionar Generar; se muestra la siguiente información.
A continuación se muestra la biblioteca DLL generada.
Paso 5: Realizar la siguiente configuración en el proyecto Java.
Completar la ruta donde se encuentra la biblioteca DLL (no es necesario incluir el nombre del archivo) y guardar.
Ejecutar la clase Java; el resultado es el siguiente.

Autor: aijiao
Email: 2585838470@qq.com
URL: https://my.oschina.net/aijiaoer0624/blog/1142876