Podprogramy w Javie umożliwiają łączenie kodu Java z kodem napisanym w innych językach programowania, głównie C i C++. Mechanizm ten nazywany jest JNI (Java Native Interface)
Metody zadeklarowane z modyfikatorem native (omówionym w punkcie 2.3.4) nie posiadają implementacji w Javie. Ich kod znajduje się w zewnętrznych bibliotekach załadowanych dynamicznie.
Przykład deklaracji metody native:
public class SystemUtils {
// Deklaracja metod native
public native long getAvailableMemory();
public native String getSystemProperty(String name);
// Ładowanie biblioteki zawierającej implementację
static {
System.loadLibrary("systemutils");
}
}
javah -jni SystemUtils
Polecenie to generuje plik nagłówkowy SystemUtils.h zawierający prototypy funkcji C.
Uwaga: Podprogramy native należy używać oszczędnie i tylko gdy jest to naprawdę konieczne, ponieważ mogą one naruszyć podstawowe cechy Javy: przenośność i bezpieczeństwo.
Sekcja zrekonstruowana na podstawie kontekstu kursu