Java Native Interface
Java Native Interface, сокращенно JNI — API для платформы Java, предоставляющий программам на языке Java интерфейс к нативным, платформно-зависимым API, например к ряду системных API Windows, Mac OS или Unix. Следует отметить, что JNI предоставляет доступ не ко всем нативным API конкретной ОС, а лишь к некоторому их подмножеству.
JNI позволяет программам на Java обойти многие (но не все) ограничения платформы Java и делать некоторые вещи, которые недоступны или пока не реализованы в рамках самой платформы Java. Вместе с тем программа, использующая JNI, теряет главное преимущество программ на Java — переносимость кода и его платформонезависимость.
Неким аналогом JNI для Java, реализованным в среде .NET Framework является механизм Platform Invoke (P/Invoke), предоставляющий программам для платформы .NET прямой доступ к некоторому подмножеству Windows API.