http://java.sun.com/docs/books/jni/html/jniTOC.html
Part One: Introduction and Tutorial
1 Introduction
1.1 The Java Platform and Host Environment
1.2 Role of the JNI
1.3 Implications of Using the JNI
1.4 When to Use the JNI
1.5 Evolution of the JNI
1.6 Example Programs
2 Getting Started
2.1 Overview
2.2 Declare the Native Method
2.3 Compile the
HelloWorld
Class2.4 Create the Native Method Header File
2.5 Write the Native Method Implementation
2.6 Compile the C Source and Create a Native Library
2.7 Run the Program
Part Two: Programmer's Guide
3 Basic Types, Strings, and Arrays
3.1 A Simple Native Method
C Prototype for Implementing the Native Method Native Method Arguments Mapping of Types3.2 Accessing Strings
Converting to Native Strings Freeing Native String Resources Constructing New Strings Other JNI String Functions New JNI String Functions in Java 2 SDK Release 1.2 Summary of JNI String Functions Choosing among the String Functions3.3 Accessing Arrays
Accessing Arrays in C Accessing Arrays of Primitive Types Summary of JNI Primitvie Array Functions Choosing among the Primitive Array Functions Acessing Arrays of Objects
4 Fields and Methods
4.1 Accessing Fields
Procedure for Accessing an Instance Field Field Descriptors Accessing Static Fields4.2 Calling Methods
Calling Instance Methods Forming the Method Descriptor Calling Static Methods Calling Instance Methods of a Superclass4.3 Invoking Constructors
4.4 Caching Field and Method IDs
Caching at the Point of Use Caching in the Defining Class's Initializer Comparison between the Two Approaches to Caching IDs4.5 Performance of JNI Field and Method Operations
5 Local and Global References
5.1 Local and Global References
Local References Global References Weak Global References Comparing References5.2 Freeing References
Freeing Local References Managing Local References in Java 2 SDK Release 1.2 Freeing Gloabl References5.3 Rules for Managing References
6 Exceptions
6.1 Overview
Caching and Throwing Exceptions in Native Code A Utility Function6.2 Proper Exception Handling
Checking for Exceptions Handling Exceptions Exceptions in Utility Functions
7 The Invocation Interface
7.1 Creating the Java Virtual Machine
7.2 Linking Native Applications with the Java Virtual Machine
Linking with a Known Java Virtual Machine Linking with Unknown Java Virtual Machine7.3 Attaching Native Threads
8 Additional JNI Features
8.1 JNI and Threads
Contraints Monitor Entry and Exit Monitor Wait and Notify Obtaining aJNIEnv
Pointer in Arbitrary Contexts Matching the Thread Models8.2 Writing Internationalized Code
Creatingjstring
s from Native Strings Translatingjstring
s to Native Strings8.3 Registering Native Methods
8.4 Load and Unload Handlers
TheJNI_OnLoad
Handler TheJNI_OnUnload
Handler8.5 Reflection Support
8.6 JNI Programming in C++
9 Leveraging Existing Native Libraries
9.1 One-to-One Mapping
9.2 Shared Stubs
9.3 One-to-One Mapping versus Shared Stubs
9.4 Implementation of Shared Stubs