JNIについて
JNIとは、Javaからネイティブなライブラリを起動するための仕組みです。結構古くからあるのですが、あまり使われるケースは少ないです。
それもそのはずで、Javaならばマルチプラットフォームで開発できるのがJavaの売りなのに、それが使えなくなってしまうからです。
とはいっても、「プラットフォームネイティブな処理をしたいのに、Javaではサポートされていない」といったことが発生した場合にはJNIを使わなければ、どうしても対応できないといったことがあります。私もあまり使った機会がないのですが、なかなか面白い技術なので、勉強がてら少し使ってみたいと思います。
WindowsAPIを実行したいなんてときには、JNIを使えばあっさりとできるので、お試しあれ。
ここで使用する環境
私が使っている環境をメインに、開発を進めることにします。
# JDK1.4.1
# Windows2000
# C言語のコンパイラとして、Borland C++ Compiler 5.5.1
JNIのマニュアルには、あまりBCCを使った開発について書いていないし、インターネットで検索してもVCばかりでBCCについて書いてあるページは少ないので、結構貴重な情報になるのではないかと思う。
JNIについては、sunの公式ページが参考になるのでリンクしておきます。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jni/
ちなみにJNIはアルファベットそのままに「ジェイエヌアイ」と呼ぶ。
たまに「ジーニー」と呼ぶ人がいるが、それはJINIのことでJNIはとは全く別の技術なので間違えないように。
Javaから呼び出す
JNIを使用して、JavaからC言語の関数を呼び出す際には、次のような流れになります。 Javaソースの作成(呼び出し側) Javaソースのコンパイル(classの作成) Java classからヘッダファイルの生成 ヘ … 続きを読む Javaから呼び出す
ネイティブからJavaを呼び出す
前章でやったのは、Javaプログラム内から、dll内の関数(ネイティブメソッド)を呼び出す方法となります。 これを利用する事で、OS依存のネイティブAPIをJavaから使用する事も可能になります。 今度は逆に、Windo … 続きを読む ネイティブからJavaを呼び出す