HPCJ supports the Java Native Interface (JNI) as its native (non-Java) interface. JNI is a VM-independent set of APIs that enables you to write native methods to access Java services. For instance, you can invoke Java methods, set and access instance data fields, and access other services. JNI native code is written in C or C++ and built into a DLL, which is loaded by the Java application using the System.loadLibrary() method. Additional information about JNI is found in the Java Native Interface Specification, which is available from the Javasoft Web site at the following URL:
http://www.javasoft.com
Since JNI is generally VM-independent, it is frequently possible to use JNI native code DLLs from your Java applications with HPCJ without recompiling them. JNI header files are shipped with HPCJ so that, if required, you can compile JNI native code from C or C++ source code. Native code DLLs that exploit the particulars of a specific vendor VM will likely not work "as is" and will require either source code changes or recompilation and relinking.
HPCJ supports the JNI invocation interface. However, HPCJ does not support dynamic loading of bytecodes, so the JNI API DefineClass() is not supported.