JNI e JNA. O que é o quê?

Tentando ser tão claro quanto o título do tópico,
para que eu uso JNI e para que eu uso JNA?
Quais as diferenças?
O que é o quê?

Uma pergunta bem noob mas só o que consegui foi descobrir que algumas pessoas consideram usar JNA mais fácil que JNI.
:slight_smile:

Vlws pessoal!

Olá!

JNI - Java Native Interface - é o framework padrão da Sun para acesso a codigo em linguagem C (acho que qualquer linguagem de máquina também, não tenho certeza). Ele é meio complexo pois precisa que seu código nativo siga algumas regras de declaração de método que são um pouco chatinhas.

JNA - Java Native Access - é uma biblioteca que abstrai essas chamadas e os tipos de dados de uma linguagem para outra. Com ele no final das contas nem parece que você está chamando linguagem nativa, pois ele facilita muito a integração.

Abraços