Java Native Interface Specification—Contents
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html
Java Native Interface OverviewBackground
JDK 1.0 Native Method InterfaceJava Runtime Interface
Raw Native Interface and Java/COM Interface
ObjectivesJava Native Interface Approach
Programming to the JNIChanges in JDK 1.1.2
JNI Interface Functions and PointersCompiling, Loading and Linking Native Methods
Resolving Native Method NamesNative Method Arguments
Global and Local ReferencesImplementing Local References
Accessing Primitive ArraysAccessing Fields and Methods
Reporting Programming ErrorsJava Exceptions
Exceptions and Error CodesAsynchronous ExceptionsException Handling
3. JNI Types and Data Structures
DefineClassFindClassGetSuperclassIsAssignableFrom
ExceptionOccurredExceptionDescribe
ExceptionClearFatalErrorExceptionCheck
DeleteLocalRefEnsureLocalCapacityPushLocalFramePopLocalFrameNewLocalRef
NewWeakGlobalRefDeleteWeakGlobalRef
AllocObjectNewObject, NewObjectA, and NewObjectV
GetFieldIDGet<type>Field Routines
GetMethodIDCall<type>Method Routines, Call<type>MethodA Routines, and Call<type>MethodV Routines
GetStaticFieldIDGetStatic<type>Field Routines
GetStaticMethodIDCallStatic<type>Method Routines, CallStatic<type>MethodA Routines, and CallStatic<type>MethodV Routines
GetStringCharsReleaseStringChars
NewStringUTFGetStringUTFLength
GetStringUTFCharsReleaseStringUTFCharsGetStringRegionGetStringUTFRegionGetStringCriticalRelease StringCritical
GetObjectArrayElementSetObjectArrayElement
New<PrimitiveType>Array RoutinesGet<PrimitiveType>ArrayElements Routines
Release<PrimitiveType>ArrayElements RoutinesGet<PrimitiveType>ArrayRegion Routines
Set<PrimitiveType>ArrayRegion RoutinesGetPrimitiveArrayCriticalReleasePrimitiveArrayCritical
RegisterNativesUnregisterNatives
NewDirectByteBufferGetDirectBufferAddressGetDirectBufferCapacity
FromReflectedMethodFromReflectedFieldToReflectedMethodToReflectedField
Creating the VMAttaching to the VM
Library and Version Management
JNI_GetDefaultJavaVMInitArgsJNI_GetCreatedJavaVMs
AttachCurrentThreadAttachCurrentThreadAsDaemonDetachCurrentThreadGetEnv