JNI(NASDAQ:JNIC)
住所: | 10945 Vista Sorrento ParkwaySan Diego, CA 92130United States |
電話: | 1- (858) 523-7000 |
FAX: | 1- (858) 523-7001 |
ウェブサイト: | http://www.jni.com/ |
業種: | テクノロジー |
業界: | コンピューター(記憶装置) |
» ダウ・ジョーンズ米国企業総合情報データベースはこちら
JNI
読み方:ジェーエヌアイ
別名:Javaネイティブインターフェース
JNIとは、Javaで記述されたプログラムにおいて、他のプログラミング言語で記述されたプログラムのネイティブコード(オブジェクトコード)を利用可能とする仕組みのことである。
JNIを利用することで、C言語、C++、アセンブリ言語といった他のプログラミング言語で記述され、各プラットフォームで実行可能な形式へと変換されたコードを、Java仮想マシン(JVM)上に呼び出して利用できるようになる。呼び出されるコードは各プラットフォームに依存した形式に変換されているため、同じプログラムが他のプラットフォーム上では実行できない可能性がある(マルチプラットフォームではなくなる)が、他のプログラミング言語で書かれた機能を資産として活用できるという利点がある。
JNIの主な用途としては、利用したい機能がプラットフォームに依存しており、Javaでサポートされていない場合、速度を要求される処理をアセンブラ言語で記述することで解決しようとする場合、既に他のプログラミング言語で開発された機能を、資産として有効活用したい場合、などが想定される。
Java Native Interface
(JNI から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/06/11 18:52 UTC 版)
Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他のプログラミング言語(たとえばCやC++など)で書かれた、実際のCPU上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。Java言語からネイティブコードを利用するためのABIと、逆にネイティブコードからJavaバイトコードを動作させるためにバーチャルマシン (VM) を利用するためのAPIの2つから成る。
注釈
- ^ Microsoft Windowsの場合は*.dllファイル。UNIX/Linuxの場合はlib*.soファイル。macOSの場合はlib*.jnilibファイル。
- ^ C++のクラスや構造体における非静的メンバー関数は、第1引数にその型へのポインタ(オブジェクトインスタンス)を暗黙的に受け取るが、プログラマに対しては隠蔽され、thisポインタとして扱われる。
- ^ C/C++ではプラットフォームや言語処理系によって組み込み型のサイズが異なる。また、少なくとも64ビット以上の整数値を表現可能な
long long
型が標準化されたのはC99およびC++11以降である。JNIインタフェースでは移植性の観点から型エイリアスを使用することが求められる。そのため、例えばjlong
がC/C++のlong long
であるなどと仮定するべきではない。
出典
- ^ JNI 関数 | Oracle Java SE 7 Documentation
- ^ JNI の型とデータ構造 | Oracle Java SE 7 Documentation
- ^ a b Best practices for using the Java Native Interface – IBM Developer
- ^ a b Java Native Interface を使用する上でのベスト・プラクティス | IBM, Internet Archive
- ^ Local and Global References | The Open Journal Project
- ^ JNI tips | Android NDK | Android DevelopersIf you want to hold on to a reference for a longer period, you must use a "global" reference.
- ^ JNI に関するヒント | Android NDK | Android Developers“参照期間を延ばしたい場合は、「グローバル」参照を使用する必要があります。”
- ^ Sun Developer Connection | JDC テクニカル・ティップ 2000年8月1日号, Internet Archive
- ^ 設計の概要 - グローバル参照およびローカル参照 | Oracle Java SE 7 Documentation
- ^ JNI オブジェクト参照の概要 | IBM Knowledge Center
- ^ JNI 関数 - グローバル参照およびローカル参照 | Oracle Java SE 7 Documentation
- ^ Java Native Interface (JNI) | IBM Knowledge Center
- 1 Java Native Interfaceとは
- 2 Java Native Interfaceの概要
- 3 JNIEnv
- 4 Javaクラスへのアクセス
- 5 ローカル参照とグローバル参照
- 6 関連項目
固有名詞の分類
- JNIのページへのリンク