Buen día,
¿alguien me puede enviar la secuencia de pasos e instrucciones para compilar, enlazar y ejecutar una aplicación java que invoca funciones de C a través de JNI?. El sistema Operativo es Linux. He buscado en sitios de interés y no hay ningún ejemplo. Incluso he podido compilar todos los fuentes y librerías; pero, algo no he compilado y/o enlazado bien, porque el programa se cae. Es el clásico "hola mundo" que circula por la red. He aquí el código fuente:
Fuente: HelloWorld.java
class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
}
Fuente: Main.java
class Main {
public static void main(String[] args)
{
System.out.println("hola antes de HelloWorld");
new HelloWorld().displayHelloWorld();
}
}
Fuente: HelloWorld.c
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello world!\n");
return;
}
Fuente: HelloWorld.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: displayHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
Muchas gracias,