javah - C ヘッダとスタブファイルジェネレータ

javah は、Java(tm) クラスから C ヘッダファイルと C ソースファイルを作成します。これらのファイルは、Java プログラミング言語で書かれたコードと、C などのその他の言語で書かれたコードを接続するのりのような役目をし、コードが相互に作用するようにします。

機能説明

javah [ options ] classname. . .
javah_g [ options ] classname. . .

説明

javah はネイティブメソッドを実装するために必要な C ヘッダとソースファイルを生成します。作成されたヘッダとソースファイルは、ネイティブソースコードからオブジェクトのインスタンス変数を参照するために C プログラムによって使用されます。.h ファイルは、対応するクラスと一致する配置をもつ構造体定義を含みます。構造体のフィールドはクラスのインスタンス変数に対応します。

ヘーダファイルとその中で宣言される構造の名前はクラスの名前から派生します。javah に渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダファイル名と構造名両方に付加されます。下線 ( _ ) が名前の区切り文字として使用されます。

デフォルトでは javah は、コマンド行にリストされる各クラスのヘーダファイルを作成し、現在のディレクトリにファイルを置きます。-stubs オプションを使用して、ソースファイルを作成してください。1 つのファイルの中に、リストされたすべてのクラスの結果を連結するためには、-o オプションを使用してください。

新しいネイティブメソッドインタフェースの Java Native Interface (JNI) は、ヘッダ情報またはスタブファイルを必要としません。現行では、javah-jni オプションを使用して、JNI形式のネイティブメソッドに必要なネイティブメソッド機能プロトタイプを生成しています。その結果は .h ファイルに置かれます。

javah_g は、jdb のようなデバッガに適した、javah の最適化されていないバージョンです。

オプション

-o outputfile
コマンド行にリストされたすべてのクラスに対して、結果のヘッダまたはソースファイルを連結して outputfile へ入れます。

-d directory
javah がヘッダファイル、またはスタブファイルを保存するディレクトリを設定します。

-td directory
javah が一時ファイルを格納するデフォルトディレクトリをオーバーライドします。デフォルトは /tmp です。

-stubs
javah に Java オブジェクトファイルから C 宣言を生成させます。

-v
詳細出力を指示し、作成ファイルの状態に関するメッセージを javah が標準出力に印刷するようにします。

-help
ヘルプメッセージを印刷します。

-trace
stubs ファイルに追跡情報を追加します。

-version
構築バージョンを出力します。

-jni
JNI 形式のネイティブファイルプロトタイプを含む出力ファイルを、javah が作成します。

-classpath path
クラスを探すために javah が使用するパスを指定します。デフォルト、または CLASSPATH 環境変数の設定をオーバーライドします。ディレクトリはコロンで分割します。したがって、path のための一般形式は次のようになります。
   .:<your_path>
たとえば、パスの指定は次のとおりです。
   .:/home/avh/classes:/usr/local/java/classes

環境変数

CLASSPATH
ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。たとえば、次のとおりです。
.:/home/avh/classes:/usr/local/java/classes

参照

javac, java, jdb, javap, javadoc