Java Native Interface 仕様 - 目次

目次 | 前へ | 次へ

1. はじめに

Java Native Interface の概要
背景

JDK 1.0 ネイティブメソッドインタフェース
Java Runtime Interface
Raw Native Interface および Java/COM インタフェース

目的
Java Native Interface のアプローチ
JNI のプログラミング
JDK 1.1.2 での変更点

2. 設計の概要

JNI インタフェースの関数とポインタ
ネイティブメソッドのコンパイル、ロード、およびリンク

ネイティブメソッド名の解決
ネイティブメソッドの引数

Java オブジェクトの参照

グローバル参照およびローカル参照
ローカル参照の実装

Java オブジェクトへのアクセス

プリミティブ配列へのアクセス
フィールドおよびメソッドへのアクセス

プログラミングエラーの報告
Java の例外

例外とエラーコード
非同期の例外
例外の処理

3. JNI の型とデータ構造

プリミティブ型
参照型
フィールドとメソッド ID
値の型
型シグニチャー
変更後の UTF-8 文字列

4. JNI 関数

インタフェース関数テーブル
バージョン情報

GetVersion

クラス操作

DefineClass
FindClass
GetSuperclass
IsAssignableFrom

例外

Throw
ThrowNew
ExceptionOccurred
ExceptionDescribe
ExceptionClear
FatalError
ExceptionCheck

グローバル参照およびローカル参照

NewGlobalRef
DeleteGlobalRef
DeleteLocalRef
EnsureLocalCapacity
PushLocalFrame
PopLocalFrame
NewLocalRef

弱グローバル参照

NewWeakGlobalRef
DeleteWeakGlobalRef

オブジェクトオペレーション

AllocObject
NewObject、NewObjectA、および NewObjectV
GetObjectClass
GetObjectRefType
IsInstanceOf
IsSameObject

オブジェクトのフィールドへのアクセス

GetFieldID
Get<type>Field ルーチン
Set<type>Field ルーチン

インスタンスメソッドの呼び出し

GetMethodID
Call<type>Method ルーチン、Call<type>MethodA ルーチン、および Call<type>MethodV ルーチン
CallNonvirtual<type>Method ルーチン、CallNonvirtual<type>MethodA ルーチン、および CallNonvirtual<type>MethodV ルーチン

static フィールドへのアクセス

GetStaticFieldID
GetStatic<type>Field ルーチン
SetStatic<type>Field ルーチン

static メソッドの呼び出し

GetStaticMethodID
CallStatic<type>Method ルーチン、CallStatic<type>MethodA ルーチン、および CallStatic<type>MethodV ルーチン

文字列操作

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

配列操作

GetArrayLength
NewObjectArray
GetObjectArrayElement
SetObjectArrayElement
New<PrimitiveType>Array ルーチン
Get<PrimitiveType>ArrayElements ルーチン
Release<PrimitiveType>ArrayElements ルーチン
Get<PrimitiveType>ArrayRegion ルーチン
Set<PrimitiveType>ArrayRegion ルーチン
GetPrimitiveArrayCritical
ReleasePrimitiveArrayCritical

ネイティブメソッドの登録

RegisterNatives
UnregisterNatives

モニターオペレーション

MonitorEnter
MonitorExit

NIO のサポート

NewDirectByteBuffer
GetDirectBufferAddress
GetDirectBufferCapacity

リフレクションのサポート

FromReflectedMethod
FromReflectedField
ToReflectedMethod
ToReflectedField

Java VM インタフェース

GetJavaVM

5. 呼び出し API

概要

VM の作成
VM への接続
VM のアンロード

ライブラリおよびバージョン管理

JNI_OnLoad
JNI_OnUnload

呼び出し API の関数

JNI_GetDefaultJavaVMInitArgs
JNI_GetCreatedJavaVMs
JNI_CreateJavaVM
DestroyJavaVM
AttachCurrentThread
AttachCurrentThreadAsDaemon
DetachCurrentThread
GetEnv

 


目次 | 前へ | 次へ

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