Contents (original) (raw)

Home Page

Java Native Interface Specification—Contents

Contents | Previous |Next

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 Compiling, 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 GetField Routines
SetField Routines

Calling Instance Methods

GetMethodID CallMethod Routines, CallMethodA Routines, and CallMethodV Routines
CallNonvirtualMethod Routines, CallNonvirtualMethodA Routines, and CallNonvirtualMethodV Routines

Accessing Static Fields

GetStaticFieldID GetStaticField Routines
SetStaticField Routines

Calling Static Methods

GetStaticMethodID CallStaticMethod Routines, CallStaticMethodA Routines, and CallStaticMethodV Routines

String Operations

NewString GetStringLength
GetStringChars ReleaseStringChars
NewStringUTF GetStringUTFLength
GetStringUTFChars ReleaseStringUTFChars GetStringRegion GetStringUTFRegion GetStringCritical Release StringCritical

Array Operations

GetArrayLength NewObjectArray
GetObjectArrayElement SetObjectArrayElement
NewArray Routines GetArrayElements Routines
ReleaseArrayElements Routines GetArrayRegion Routines
SetArrayRegion 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


Contents | Previous | Next

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.