Собственный интерфейс Java (JNI) дает как возможность реализациям JVM запускать собственный системный код, так и возможность для собственного кода запускать код Java (путем создания новых экземпляров JVM). Наиболее распространенными целевыми языками для JNI являются C и C++, для которых, по крайней мере, реализации Sun / Oracle JDK предоставляют вспомогательные команды (javap - для дизассемблирования кода, javah для генерации кода c).