Java Native Interface Specification contents——jni官方文档

    技术2022-05-20  39

    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


    最新回复(0)