Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Artigo no estilo: Curso

De que se trata o artigo:

Conheceremos neste artigo a Java Native Access, mais uma boa opção do Java para os profissionais que precisam trabalhar com C/C++ e acessar código nativo.


Para que serve:

Se seus sistemas precisam se relacionar com código C/C++, esta é uma excelente alternativa que simplificará seu trabalho.


Em que situação o tema é útil:

O tema é útil para todos aqueles que têm interesse em aprender sobre a integração do Java com as linguagens C e C++ e saber como estão os avanços nesta área – que hoje apontam para a JNA.

Durante este minicurso, conhecemos o suporte das IDEs Eclipse e NetBeans para desenvolvimento nativo, através dos seus plug-ins para C/C++, implementamos alguns exemplos utilizando Java Native Interface, assim como realizamos algumas comparações. Para concluir esta série, mantendo uma estrutura semelhante à apresentada na segunda parte, analisaremos neste artigo a Java Native Access.

Trabalhando com JNA

Se o leitor conhece o ditado “é preciso conhecer o Inferno para dar valor ao Paraíso”, entenderá minha intenção em apresentar a JNI antes da JNA. A JNI é trabalhosa – e também perigosa, não sendo difícil cometer bugs que resultem em leaks, crashes ou corrupção do heap, mesmo quando o código JNI é apenas uma “casca” encapsulando código C/C++ preexistente e livre de bugs!

A JNI foi projetada nos idos de 1999; foi introduzida com o primeiro release Java2 (JDK 1.2), e suas raízes remontam às origens do Java. O JDK 1.0 tinha uma interface nativa muito rudimentar e limitada, que foi evoluindo, incorporando contribuições da Netscape (JRI) e Microsoft (RNI). O resultado final, a JNI, é poderoso, portável e compatível com JVMs avançadas (por exemplo, com algoritmos modernos de GC). Mas também é complexo.

Se o leitor imaginou se não seria possível criar algo mais moderno e produtivo, não foi o primeiro a ter a ideia. Há tempos existem projetos que encapsulam a JNI com interfaces mais convenientes. Um destes projetos, o JENIE, foi apresentado pelo artigo da Edição 36, e foi um dos precursores deste “movimento”; mas este projeto é antigo e já abandonado. Vamos falar aqui da opção atual, a JNA, que tomou o lugar de todos estes precursores – a JNA foi criada pela própria Sun, apesar de não ser uma parte oficial da plataforma, e acabou dominando este nicho.

...

Quer ler esse conteúdo completo? Tenha acesso completo