0

JNI (Java Native Interface)

Java (2)Java Native Interface – Parte 1

c++logoA 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 no em C.

nativesides

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

Após a criação da Interface Nativa será gerado um arquivo uma estrutura semelhante a:

Na próxima postagem, uma abordagem sobre tipos de dados.

0

Registrar DLL no Windows 64x

dllRegistro de DLL no Windows 7 64x

Caso faça uso de arquivos de dll em seu sistema e esteja utilizando uma máquina windows, em alguns casos se faz necessário registrar a dll nos registros do sistema. Segue aqui algumas configurações para registro de arquivos dll. Para registrar uma dll usamos a ferramenta do windows regsvr32.exe. 

A ferramenta regsvr32.exe, tem como função registrar ou cancelar o registro de uma DLL e arquivos de controle OCX.

Comandos do regsvr32.exe

/u  – Servidor não registrado;
/s   – Modo silencioso – sem caixas de mensagem;
/i    – Chama DLLInstall passando [LnComando] opcional; Quando usado com /u chama da desistalação da DLL;
/n  – Não chama o DllRegisterServer, essa opção deve ser usada com /i;

  • DLL de 32 bits

Para as dlls de versão 32 bits devemos chamar o regsvr32.exe do diretório abaixo:

C:\Windows\SysWoW64.

  • DLL de 64 bits

Para as dlls de versão 64 bits devemos chamar o regsvr32.exe do diretório abaixo:

C:\Windows\System32.

Registrar DLL no Windows 64x

  • Execute o Command (cmd.exe) como administrador.
  • Insira o comando regsvr32 apontando para o diretório da DLL a ser registrada.

Comando:  regsvr32 [diretório da DLL][nome da DLL]

  • Por fim será exibida a mensagem de confirmação do registro.

Remover o Registro da DLL

Comando:  regsvr32  /u [diretório da DLL] [nome da DLL]