1 ." Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
   2 ." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   3 ."
   4 ." This code is free software; you can redistribute it and/or modify it
   5 ." under the terms of the GNU General Public License version 2 only, as
   6 ." published by the Free Software Foundation.
   7 ."
   8 ." This code is distributed in the hope that it will be useful, but WITHOUT
   9 ." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10 ." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  11 ." version 2 for more details (a copy is included in the LICENSE file that
  12 ." accompanied this code).
  13 ."
  14 ." You should have received a copy of the GNU General Public License version
  15 ." 2 along with this work; if not, write to the Free Software Foundation,
  16 ." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  17 ."
  18 ." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  19 ." or visit www.oracle.com if you need additional information or have any
  20 ." questions.
  21 ."
  22 .TH javah 1 "07 May 2011"
  23 
  24 .LP
  25 .SH "名前"
  26 javah \- C ヘッダーとスタブファイルジェネレータ
  27 .LP
  28 .LP
  29 \f3javah\fP は、Java クラスから C ヘッダーファイルと C ソースファイルを作成します。これらのファイルは、Java プログラミング言語で書かれたコードと、C などのその他の言語で書かれたコードを接続し、コードが相互に作用するようにします。
  30 .LP
  31 .SH "形式"
  32 .LP
  33 .nf
  34 \f3
  35 .fl
  36 javah [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . .
  37 .fl
  38 \fP
  39 .fi
  40 
  41 .LP
  42 .SH "説明"
  43 .LP
  44 .LP
  45 \f3javah\fP は、ネイティブメソッドを実装するために必要な C ヘッダーとソースファイルを生成します。作成されたヘッダーとソースファイルは、ネイティブソースコードからオブジェクトのインスタンス変数を参照するために C プログラムによって使用されます。.h ファイルは、対応するクラスと一致する配置を持つ構造体定義を含みます。構造体のフィールドは、クラスのインスタンス変数に対応します。
  46 .LP
  47 .LP
  48 ヘッダーファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\f3javah\fP に渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダーファイル名と構造体名の両方に付加されます。下線 (_) が名前の区切り文字として使用されます。
  49 .LP
  50 .LP
  51 デフォルトでは \f3javah\fP は、コマンド行にリストされる各クラスのヘッダーファイルを作成し、現在のディレクトリにファイルを置きます。ソースファイルを作成するには、\f2\-stubs\fP オプションを使用してください。1 つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\f2\-o\fP オプションを使用してください。
  52 .LP
  53 .LP
  54 新しいネイティブメソッドインタフェースである Java Native Interface (JNI) は、ヘッダー情報またはスタブファイルを必要としません。現在では、\f3javah\fP は、JNI 形式のネイティブメソッドに必要なネイティブメソッド機能プロトタイプを生成します。デフォルトでは、\f3javah\fP は JNI 形式で出力され、その結果は .h ファイルに格納されます。
  55 .LP
  56 .SH "オプション"
  57 .LP
  58 .RS 3
  59 .TP 3
  60 \-o outputfile 
  61 コマンド行にリストされたすべてのクラスに対して、結果のヘッダーまたはソースファイルを連結して \f2outputfile\fP に格納します。\f3\-o\fP または \f3\-d\fP のどちらか一方だけが使われます。 
  62 .TP 3
  63 \-d directory 
  64 \f3javah\fP がヘッダーファイルまたはスタブファイルを保存する、ディレクトリを設定します。\f3\-d\fP または \f3\-o\fP のどちらか一方だけが使われます。 
  65 .TP 3
  66 \-stubs 
  67 \f3javah\fP が、Java オブジェクトファイルから C 宣言を生成します。 
  68 .TP 3
  69 \-verbose 
  70 詳細出力を指定し、作成ファイルの状態に関するメッセージを、\f3javah\fP が標準出力に出力します。 
  71 .TP 3
  72 \-help 
  73 \f3javah\fP の使用法についてのヘルプメッセージを出力します。 
  74 .TP 3
  75 \-version 
  76 \f3javah\fP のバージョン情報を出力します。 
  77 .TP 3
  78 \-jni 
  79 JNI 形式のネイティブファイル機能プロトタイプを含む出力ファイルを、\f3javah\fP が作成します。これは標準出力であるため、\f3\-jni\fP の使用はオプションです。 
  80 .TP 3
  81 \-classpath path 
  82 クラスを探すために \f3javah\fP が使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 
  83 .nf
  84 \f3
  85 .fl
  86    .:<your_path>
  87 .fl
  88 \fP
  89 .fi
  90 次に例を示します。 
  91 .nf
  92 \f3
  93 .fl
  94    .:/home/avh/classes:/usr/local/java/classes
  95 .fl
  96 \fP
  97 .fi
  98 .LP
  99 便宜上、 \f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。
 100 .br
 101 .br
 102 たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。 \f2*\fP だけから成るクラスパスエントリは、現在のディレクトリ内のすべての JAR ファイルのリストに展開されます。 \f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。   
 103 .TP 3
 104 \-bootclasspath path 
 105 ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは \f2jre/lib/rt.jar\fP および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。 
 106 .TP 3
 107 \-old 
 108 古い JDK1.0 形式のヘッダーファイルを生成するように指定します。 
 109 .TP 3
 110 \-force 
 111 出力ファイルが常に書き込まれるように指定します。 
 112 .TP 3
 113 \-Joption 
 114 Java 仮想マシンに \f2option\fP を渡します。\f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 
 115 .RE
 116 
 117 .LP
 118 .SH "環境変数"
 119 .LP
 120 .RS 3
 121 .TP 3
 122 CLASSPATH 
 123 ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割されています。 
 124 .nf
 125 \f3
 126 .fl
 127 .:/home/avh/classes:/usr/local/java/classes
 128 .fl
 129 \fP
 130 .fi
 131 .RE
 132 
 133 .LP
 134 .SH "関連項目"
 135 .LP
 136 .LP
 137 javac(1)、java(1)、jdb(1)、javap(1)、javadoc(1)
 138 .LP
 139