ネイティブメソッドを実装する |
ここの例では簡単な文字置換プログラムを実装する。 プログラムの起動時に はコマンド行に以下の引数を付ける。
char1 char2 inputfile outputfileReplace プログラムは inputfile を読み取り、出現したchar1 をすべて char2 で置換し、その結果をoutputfile に書き込む。
ソースファイル
- Replace.java
- メインプログラムがはいっている。
- File.java
- File クラスを定義する。 このクラスは、サブクラスが提示しようとするファ イルセマンティックスに応じて実際のファイル管理コードを実現するという想定に基づき、基本的なファイル操作およびパス操作を提供する。InputFile と OutputFile はどちらも File から得られる。
- InputFile.java
- 読み取り専用入力ファイルを実装する InputFile クラス (File のサブクラス) がはいっている。このクラスは 3 つのネイティブメソッドを宣言している。これらのメソッドは C プログラミング言語で実装され、InputFileImpl.c に納められている。
- OutputFile.java
- 書き込み専用出力ファイルを実装する OutputFile クラス (File のサブクラス) がはいっている。このクラスは 3 つのネイティブメソッドを宣言している。これらのメソッドは C プログラミング言語で実装され、OutputFileImpl.c に納められて いる。
javah が生成するファイル
- File.h
InputFile.h
OutputFile.h- javah によって生成される C 言語ヘッダーファイル。
- File.c
InputFile.c
OutputFile.c- javah -stubs によって生成される C 言語のスタブファイル。
手順
- Java コンパイラを使用し、.java ファイルを .class ファイルにコンパイルする。
- すべての C 言語コードを "file" という名前の動的にロード可能なライブラリにコ ンパイルする。この方法がわからないときは、ステップバイステップ レッスンのステップ 6: 動的にロード可能なライブラリ を作成するの手順を参照する。
- Java インタープリタを使用し、プログラムを実行する。
目次 |