The Java Native Interface defines a standard naming and calling convention so that the Java Virtual Machine (VM) can locate and invoke your native methods. This section shows you how to follow the JNI naming and calling conventions so that you can use JNI functions from a native method. It also teaches you how to declare types so that they can be correctly recognized by both the Java program and the native method.
Declaring Native MethodsOn the Java side, you declare a native method with the
nativekeyword and an empty method body. On the native side, you provide an implementation for the native method. You must be careful when writing native methods to "match" the native function implementation with the method signature in the Java header file. The
javahtool, which is explained in Step 3: Create the .h file, helps you to generate native function prototypes that match the Java-side native method declaration.
Mapping between Java and Native TypesThe JNI defines a mapping of Java types and native language (C/C++) types. This section introduces the native types corresponding to both primitive Java types, such as
double, and Java objects, including strings and arrays.