javah は、JavaTM クラスから C ヘッダファイルと C ソースファイルを作成します。これらのファイルは、Java プログラミング言語で書かれたコードと、C などのその他の言語で書かれたコードを接続し、コードが相互に作用するようにします。
javah [ options ] fully-qualified-classname. . . javah_g [ options ] fully-qualified-classname. . .
javah は、ネイティブメソッドを実装するために必要な C ヘッダとソースファイルを生成します。作成されたヘッダとソースファイルは、ネイティブソースコードからオブジェクトのインスタンス変数を参照するために C プログラムによって使用されます。.h ファイルは、対応するクラスと一致する配置を持つ構造体定義を含みます。構造体のフィールドは、クラスのインスタンス変数に対応します。ヘッダファイルとその中で宣言される構造体の名前はクラスの名前から派生します。javah に渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダファイル名と構造体名の両方に付加されます。下線 (_) が名前の区切り文字として使用されます。
デフォルトでは javah は、コマンド行にリストされる各クラスのヘッダファイルを作成し、現在のディレクトリにファイルを置きます。ソースファイルを作成するには、-stubs オプションを使用してください。1 つのファイルの中に、リストされたすべてのクラスの結果を連結するには、-o オプションを使用してください。
新しいネイティブメソッドインタフェースである Java Native Interface (JNI) は、ヘッダ情報またはスタブファイルを必要としません。 現在では、javah は、JNI 形式のネイティブメソッドに必要なネイティブメソッド機能プロトタイプを生成します。 デフォルトでは、javah は JNI 形式で出力され、その結果は .h ファイルに格納されます。
javah_g は、jdb のようなデバッガに適した、javah の最適化されていないバージョンです。
- -o outputfile
- コマンド行にリストされたすべてのクラスに対して、結果のヘッダまたはソースファイルを連結して outputfile に格納します。-o または -d のどちらか一方だけが使われます。
- -d directory
- javah がヘッダファイルまたはスタブファイルを保存する、ディレクトリを設定します。-d または -o のどちらか一方だけが使われます。
- -stubs
- javah が、Java オブジェクトファイルから C 宣言を生成します。
- -verbose
- 詳細出力を指定し、作成ファイルの状態に関するメッセージを、javah が標準出力に出力します。
- -help
- javah の使用法についてのヘルプメッセージを出力します。
- -version
- javah のバージョン情報を出力します。
- -jni
- JNI 形式のネイティブファイル機能プロトタイプを含む出力ファイルを、javah が作成します。これは標準出力であるため、-jni の使用はオプションです。
- -classpath path
- クラスを探すために javah が使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、path の一般形式は次のようになります。
.:<your_path>次に例を示します。.:/home/avh/classes:/usr/local/java/classes- -bootclasspath path
- ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは jre/lib/rt.jar および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。
- -old
- 古い JDK1.0 形式のヘッダファイルを生成するように指定します。
- -force
- 出力ファイルが常に書き込まれるように指定します。
- -Joption
- Java 仮想マシンに option を渡します。option には、「Java アプリケーション起動ツール」のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、-J-Xms48m と指定すると、スタートアップメモリは 48M バイトに設定されます。
- CLASSPATH
- ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割されています。
.:/home/avh/classes:/usr/local/java/classes
javac、java、jdb、javap、javadoc
Copyright © 2002 Sun Microsystems, Inc.All Rights Reserved. |
Java ソフトウェア |