Integração Java e C++ com JNI

JNI (Java Native Interface)

Java Native Interface

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++

Padrão JNI

O Aplicativo javah

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:

Last updated

Was this helpful?