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