[Duvida] Sobre JNI

11 respostas
ken420

Pessoal sei que JNI é java native interface, e estou tendo problemas com isso e estou com uma duvida, JNI é quando vc programa utilizando uma ferramenta grafica(NETBEANS, ECLIPSE etc)? se eu criar meus codigos atravez de um notepad++(EXEMPLO) esse tipo de erros JNI nao ocorrem? é uma duvida para muitos bem idiota mas fico agradecido por algumas explicacoes vlw !!!

11 Respostas

Shelson

JNI

O Java Native Interface (JNI) é um framework de programação Java que permite executar o código na máquina virtual Java (JVM) para chamar e ser chamado [1] por aplicações nativas (programas específicos para uma plataforma de hardware e sistema operacional) e bibliotecas escritas em outras linguagens, como C, C + + e assembly.

ken420

e como uso o parãmetro -Xcheck:jni para rodar meu programa? pq estou realmente usando a JNI em meu projeto

Shelson

nao sei.

ken420

:expressionless:

fernandorsl

Cara, nao tenho a resposta para sua pergunta pq abandonei o JNI há muito tempo… Atualmente uso o JNA… Aconselho que vc dê uma olhada.

Abs.

Rocha

KWill

fernandorsl:
Cara, nao tenho a resposta para sua pergunta pq abandonei o JNI há muito tempo… Atualmente uso o JNA… Aconselho que vc dê uma olhada.

Abs.

Rocha

Eu estou indo no mesmo caminho. Só uso JNI quando eu estou totalmente desesperado por performance mesmo, já que com JNI não se tem toda a loucura de checagem de tipos e procura de procedimento no código nativo em tempo de execução que o JNA tem, mas pelo menos com JNA não tenho que me preocupar tanto em fazer um “stub” JNI em código nativo e compilar esse “stub” em código nativo com algum compilador nativo da plataforma.

Inté.

ken420

JNI no caso entao sao as biliotecas do windows ? e com isso o software usa as janelas do windows to correto?

ken420

ai no caso de querer programar para linux n teria como?

KWill

Acho que você ainda não deve ter entendido direito o que é e para que serve JNI… JNI não tem o intuito de servir necessariamente para interfaces gráficas ainda que possa ser usada para tal, mas serve como forma de se poder usar código nativo direto. O nome JNI, Java Native Interface não deve se referir a “interfaces gráficas”, mas sim a interface/integração/ponte/cola/gambiarra entre Java e código nativo.

Inté.

ken420

JNI entendi e JNA qual diferenca de um para o outro ?

KWill

Uma diferença é que não é necessário criar um “stub” JNI, o que te normalmente te obriga a usar um compilador para código nativo da plataforma e escrever esse “stub” em código nativo propriamente dito. Em vez de "stub"s JNI, você cria apenas código Java e o JNA faz o trabalho de checagem/conversão de tipos, procurar e chamar os procedimentos em código nativo, quase tudo em tempo de execução. Ou seja, JNA te libera de ter que mexer diretamente com visual studio/gcc/borland c++ builder na hora de fazer o “stub” JNI, algo que é obrigatório quando se está usando JNI.

Inté.

Criado 17 de dezembro de 2008
Ultima resposta 22 de dez. de 2008
Respostas 11
Participantes 4