Integração Java e C++ com JNI
JNI (Java Native Interface)
Last updated
JNI (Java Native Interface)
Last updated
A Java Native Interface JNI define um padrão de nomes e convenções de funções que só a Máquina Virtual Java pode localizar e invocar nos métodos nativos de uma DLL gerada em C/C++ ou Assemble.
O JNI habilita programadores a escrever métodos nativos para tratar situações em que uma aplicação não pode ser escrita inteiramente na linguagem Java. A Java Native Interface define um padrão de nomes e convenções de funções que só a Máquina Virtual Java pode localizar e invocar nos métodos nativos.
Através do uso do padrão JNI podemos integrar nossos projetos Java com DLLs geradas e compiladas em C++
O aplicativo javah essencial para a criação da interface nativa é fornecido pela JDK. Utilizamos este aplicativo para gerar um arquivo .h que define os protótipos dos métodos de uma classe Java em forma de interface C/C++. Esta interface contém as declarações necessárias para compilarmos corretamente os módulos nativos que interagem com a JNI.
O aplicativo javah tem como vantagem reduzir os erros de programação na hora de integração de módulos nativos com a nossa JNI.
Para gerar um arquivo .h com o aplicativo javah devemos seguir com os seguintes passos:
1 – Compilação da Classe Java
2 – Criação da Interface Nativa JNI
Compilação via linha de comando, o ambiente de desenvolvimento deve estar configurado com a JDK e suas respectivas variáveis de ambiente.
Após a criação da Interface Nativa será gerado um arquivo uma estrutura semelhante a: