Java Native Interface
Java Native Interface o JNI (letteralmente interfaccia nativa Java) è il nome di un framework di programmazione che ha lo scopo di permettere ad applicazioni Java di interfacciarsi con funzioni scritte in altri linguaggi di programmazione, in particolare C, C++ e Assembly.
L'uso principale di JNI consiste nel consentire a programmi Java di far uso di servizi implementati nelle librerie del sistema operativo ospite mediante primitive di sistema.
L'interfacciamento è basato sulla definizione di un insieme di classi di raccordo fra i due contesti, che presentano una interfaccia Java, ma che delegano al codice nativo l'implementazione dei loro metodi. Lo stesso framework consente anche l'operazione inversa, ovvero l'invocazione di codice Java da parte di programmi scritti nei linguaggi nativi.