Java native interfaces are wrappers for C and C++ code via a standard API. Microsoft has a competing standard called Raw Native Interfaces, and Java 1.0 has yet another way to do it.
JNI
From java.sun.com
JNI interface itself is binary-compatible with COM. We use the same jump table structure and calling convention that COM does. This means that, as soon as cross-platform support for COM is available, the JNI can become a COM interface to the Java VM.
Is it up to the individual firm to implement the "cross-platform support"?
See original on c2.com