Java · Avançado · Português · Técnico
JNI
Interface padrão para o Java chamar código nativo em C ou C++ e vice-versa, por métodos native e bibliotecas carregadas com System.loadLibrary.
Onde usar
Aparece em UnsatisfiedLinkError e em libs que embutem .so ou .dll. Hoje a Foreign Function and Memory API é a alternativa preferida.
Em código
public class Nativo {
static { System.loadLibrary("calc"); }
public native int somar(int a, int b);
}
// javac -h . Nativo.java gera Nativo.hExemplos
A biblioteca usa JNI e carrega uma .dll no startup.
Deu UnsatisfiedLinkError porque a lib nativa não está no caminho.
Cuidado
Código nativo pode derrubar a JVM inteira com um segfault; não há exceção Java para isso.
Sinônimos
Java Native Interface
Origem
Sigla de Java Native Interface, interface nativa do Java.