gcj y jni

tema enviado por Novato en Java
tema iniciado el 05/01/2007

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,