Java native interface, it is an interface that interacts with the Native Method Libraries and also provides the native libraries like C, C++ that are required for the execution. The main purpose is to enable JVM to call C/C++ libraries and to be called by C/C++ libraries which may be specific to a hardware.