ExpertiDict

Java · Avançado · Português · Técnico

JNI

/ˈʒɔtɐ ˈẽni ˈi/substantivo

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.h

Exemplos

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.

Veja também

Todos os termos de Java