Pular para o conteúdo

Java Native Interface

Surgiu a necessidade de usar o JNI (Java Native Interface) e tive muita dificuldade para encontrar informações sobre o assunto. Então resolvi compartilhar o que aprendi sobre este assunto.
Allan kardec Santos Oliveira super-root
Hits: 24.106 Categoria: Java Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 2: Funcionamento

Para que o Java encontre as funções escritas em outras linguagens, estas funções devem ser definidas utilizando tipos que o Java vai reconhecer.

Os tipos primitivos como int, float, double do C/C++ devem ser substituídos pelos tipos definidos no JNI tais como como jint, jfloat, jdouble, jstring etc.

Veja os tipos primitivos definidos pelo JNI:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Veja mais detalhes no site:
Veja um esquema simples do funcionamento:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. O que é o JNI
   2. Funcionamento
   3. Exemplo de utilização do JNI
   4. Um exemplo mais complexo

Criando classe Java para conectar e manipular dados no MySQL

Construindo uma aplicação JDialog

Emulando o Internet Explorer no Slackware

Linux + Rails + Ruby + Mongrel + PostgreSQL + NetBeans 6 Preview

GCJ – Conhecendo o compilador Java Livre

PDFBox - Aplicativo Java para baixar o DOU completo

Trabalhando com a interface gráfica em Java (parte 2)

Testes unitários em Java com JUnit

#1 Comentário enviado por asdf2 em 23/09/2011 - 00:42h
artigo bom mas esqueceu de por um simples hello world pra comparação de codigo, mas valeu, nota 8
#2 Comentário enviado por elyssonmr em 23/09/2011 - 10:31h
Muito legal isso, só não entendi uma coisa: você utiliza o Header da lib parted e depois gera o .so compatível com o jni certo?

Se já possuir um .so pronto como eu faria para linkar com o java, porque neste caso o a lib a ser utilizada esta sendo compilada?

Vlw
#3 Comentário enviado por super-root em 23/09/2011 - 17:58h
Elyssonmr, caso você tenha uma lib no padrão do JNI, então será necessário conhecer as funções/declarações desta biblioteca. Desta forma seria necessário criar somente o programa em java com lendo as funções da biblioteca.

Contribuir com comentário

Entre na sua conta para comentar.