SEE: http://download.oracle.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html
1. Introduction
Java Native Interface Overview Background
JDK 1.0 Native Method Interface Java Runtime Interface Raw Native Interface and Java/COM Interface
Objectives Java Native Interface Approach Programming to the JNI Changes in JDK 1.1.2
2. Design Overview
JNI Interface Functions and Pointers Loading and Linking Native Methods
Resolving Native Method Names Native Method Arguments
Referencing Java Objects
Global and Local References Implementing Local References
Accessing Java Objects
Accessing Primitive Arrays Accessing Fields and Methods
Reporting Programming Errors Java Exceptions
Exceptions and Error Codes Asynchronous Exceptions Exception Handling
3. JNI Types and Data Structures
Primitive Types Reference Types Field and Method IDs The Value Type Type Signatures Modified UTF-8 Strings
4. JNI Functions
Interface Function Table Version Information
GetVersion
Class Operations
DefineClass FindClass GetSuperclass IsAssignableFrom
Exceptions
Throw ThrowNew ExceptionOccurred ExceptionDescribe ExceptionClear FatalError ExceptionCheck
Global and Local References
NewGlobalRef DeleteGlobalRef DeleteLocalRef EnsureLocalCapacity PushLocalFrame PopLocalFrame NewLocalRef
Weak Global References
NewWeakGlobalRef DeleteWeakGlobalRef
Object Operations
AllocObject NewObject, NewObjectA, and NewObjectV GetObjectClass GetObjectRefType IsInstanceOf IsSameObject
Accessing Fields of Objects
GetFieldID Get<type>Field Routines Set<type>Field Routines
Calling Instance Methods
GetMethodID Call<type>Method Routines, Call<type>MethodA Routines, and Call<type>MethodV Routines CallNonvirtual<type>Method Routines, CallNonvirtual<type>MethodA Routines, and CallNonvirtual<type>MethodV Routines
Accessing Static Fields
GetStaticFieldID GetStatic<type>Field Routines SetStatic<type>Field Routines
Calling Static Methods
GetStaticMethodID CallStatic<type>Method Routines, CallStatic<type>MethodA Routines, and CallStatic<type>MethodV Routines
String Operations
NewString GetStringLength GetStringChars ReleaseStringChars NewStringUTF GetStringUTFLength GetStringUTFChars ReleaseStringUTFChars GetStringRegion GetStringUTFRegion GetStringCritical Release StringCritical
Array Operations
GetArrayLength NewObjectArray GetObjectArrayElement SetObjectArrayElement New<PrimitiveType>Array Routines Get<PrimitiveType>ArrayElements Routines Release<PrimitiveType>ArrayElements Routines Get<PrimitiveType>ArrayRegion Routines Set<PrimitiveType>ArrayRegion Routines GetPrimitiveArrayCritical ReleasePrimitiveArrayCritical
Registering Native Methods
RegisterNatives UnregisterNatives
Monitor Operations
MonitorEnter MonitorExit
NIO Support
NewDirectByteBuffer GetDirectBufferAddress GetDirectBufferCapacity
Reflection Support
FromReflectedMethod FromReflectedField ToReflectedMethod ToReflectedField
Java VM Interface
GetJavaVM
5. The Invocation API
Overview
Creating the VM Attaching to the VM Unloading the VM
Library and Version Management
JNI_OnLoad JNI_OnUnload
Invocation API Functions
JNI_GetDefaultJavaVMInitArgs JNI_GetCreatedJavaVMs JNI_CreateJavaVM DestroyJavaVM AttachCurrentThread AttachCurrentThreadAsDaemon DetachCurrentThread GetEnv