Java Native Interface (JNI)

Java™ は、Sun Microsystems によって開発されたオブジェクト指向プログラミング 言語で、インターネット文書を対話式に作成するための 強力な手段です。 Java Native Interface (JNI) は、 ネイティブ・プログラミング言語に対する Java インターフェース で、Java Development Kit の一部です。

JNI を使用するプログラムを作成すれば、多くのプラットフォームにわたってコードを移植できるようになります。

JNI によって、Java 仮想マシン (JVM) 内で稼働する Java コードは、PL/I などの他言語で書かれたアプリケーションやライブラリーと相互運用できます。 さらに、Invocation API を使用すれば、Java 仮想マシンを PL/I アプリケーションに組み込むことができます。

Java は完成度の高いプログラム言語ですが、状況によっては 他のプログラミング言語で書かれたプログラムを呼び出す必要も生じます。 Java からこれを行うには、ネイティブ言語に対するメソッド呼び出し (ネイティブ・メソッド と呼ばれる) を使用します。

ネイティブ・メソッドを使用する理由をいくつか示します。

  • アプリケーションのニーズを満たす Java クラス・ライブラリーには ない特殊な機能がネイティブ言語に備わっている。
  • ネイティブ言語で書かれたアプリケーションが既に多数存在し、 Java アプリケーションからこれらにアクセスできるようにしたい。
  • ネイティブ言語で一連の複雑な計算を集中的にインプリメントし、これらの関数を Java アプリケーションから呼び出したい。
  • ユーザーまたはプログラマーがネイティブ言語の幅広いスキル を持っていて、この利点を失いたくない。
JNI を使用したプログラミングでは、ネイティブ・メソッドを使用して多種多様な操作を実行できます。
  • ネイティブ・メソッドでは、Java メソッドでオブジェクトが使用される方法と同じ方法で Java オブジェクトを使用できます。
  • ネイティブ・メソッドでは、Java オブジェクト (配列やストリングなど) を作成して検査し、そのオブジェクトを使用してタスクを実行できます。
  • ネイティブ・メソッドでは、Java アプリケーション・コードによって作成されたオブジェクトを検査して使用できます。
  • ネイティブ・メソッドでは、ネイティブ・メソッドで作成されたりネイティブ・メソッドに渡されたりした Java オブジェクトを更新できます。 更新されたオブジェクトは、Java アプリケーションで使用できるようにすることが可能です。

最後に、ネイティブ・メソッドは Java プログラミング・フレームワーク に既に組み込まれている機能を利用して、既存の Java メソッドを 呼び出すことも簡単にできます。 このように、アプリケーションのネイティブ言語側と Java 側の 両方で Java オブジェクトを作成、更新、および使用でき、 さらにこれらのオブジェクトを相互間で共用できます。