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 ();
public native void diga ();
static {
System.loadLibrary("olanativo");
}
System.loadLibrary("olanativo");
}
public
static void main (String[] args) {
OlaMundo ola = new OlaMundo ();
ola.diga();
}
}
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