quarta-feira, 7 de agosto de 2013

JNI (Java Native Inteface)


 
 
 
JNI, Java Native Interface, é uma suíte de programação que permite código em Java rodando sob uma máquina virtual Java (JVM) chamar e ser chamada por aplicações nativas. Aplicações nativas são programas escritos para plataformas de hardware e sistema operacional específicos. É possível fazer chamadas para C, C++ e Assembly, dentre outras.

C/C++

1- Criar uma aplicação JAVA.

class OlaMundo {
            public native void diga ();

            static {
                        System.loadLibrary("olanativo");
            }
            public static void main (String[] args) {
                        OlaMundo ola = new OlaMundo ();
                        ola.diga();
            }
}

Pode compilar usando javac OlaMundo.java, e após isto gere um arquivo OlaMundo.h, utilizando o comando javah OlaMundo

2- Criamos nossa aplicação em C++ chamada JAVA_OlaMundo_diga e importaremos nossa header OlaMundo.h para dentro dela...

#include <stdio.h>
#include "OlaMundo.h"

JNIEXPORT void JNICALL Java_OlaMundo_diga (JNIEnv * env, jobject jobj){
   printf("ola mundo\n");
}

3- Compilamos e chamamos: java OlaMundo

Desvantagens de se usar JNI:

Perda da portabilidade.

Uma aplicação que usa uma implementação nativa só funcionará para os binários compilados disponíveis e existem muitos conceitos envolvidos para fazer uma aplicação JNI funcionar. É necessário conhecimento em mais de uma linguagem.

Nenhum comentário:

Postar um comentário