javac.1 41.9 KB
Newer Older
D
duke 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
." Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
T
tbell 已提交
21 22 23
."
.TH javac 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)
D
duke 已提交
24 25

.LP
T
tbell 已提交
26 27
.SH "名前"
javac \- Java プログラミング言語コンパイラ
D
duke 已提交
28
.LP
T
tbell 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
.RS 3
.TP 2
o
形式 
.TP 2
o
説明 
.TP 2
o
オプション 
.TP 2
o
コマンド行引数ファイル 
.TP 2
o
注釈処理 
.TP 2
o
型の検索 
.TP 2
o
プログラマティックインタフェース 
.TP 2
o
 
.TP 2
o
関連項目 
.RE

.LP
.SH "形式"
D
duke 已提交
61 62 63 64 65 66 67 68 69 70 71 72 73 74
.LP

.LP
.nf
\f3
.fl
        \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ]
.fl
      
.fl
.fi

.LP
.LP
T
tbell 已提交
75
引数は順不同です。
D
duke 已提交
76 77 78 79 80 81 82
.LP
.RS 3

.LP
.RS 3
.TP 3
options 
T
tbell 已提交
83
コマンド行オプション。 
D
duke 已提交
84 85
.TP 3
sourcefiles 
T
tbell 已提交
86
コンパイルされる 1 つ以上のソースファイル (MyClass.java など) 
D
duke 已提交
87 88
.TP 3
classes 
T
tbell 已提交
89
注釈の処理対象となる 1 つ以上のクラス (MyPackage.MyClass など) 
D
duke 已提交
90 91
.TP 3
@argfiles 
T
tbell 已提交
92
オプションとソースファイルを列挙した 1 つ以上のファイル。このファイルの中では、\f2\-J\fP オプションは指定できません。 
D
duke 已提交
93 94 95 96
.RE

.LP
.RE
T
tbell 已提交
97
.SH "説明"
D
duke 已提交
98 99 100 101
.LP

.LP
.LP
T
tbell 已提交
102
\f3javac\fP ツールは、Java プログラミング言語で記述されたクラスとインタフェースの定義を読み取り、バイトコードのクラスファイルにコンパイルします。また、Java ソースファイルおよびクラス内の注釈の処理も行います。
D
duke 已提交
103 104
.LP
.LP
T
tbell 已提交
105
ソースコードのファイル名を \f3javac\fP に渡すには、次の 2 つの方法があります。
D
duke 已提交
106 107 108 109
.LP
.RS 3
.TP 2
o
T
tbell 已提交
110
ソースファイルの数が少ない場合は、ファイル名をコマンド行で直接指定します。 
D
duke 已提交
111 112
.TP 2
o
T
tbell 已提交
113
ソースファイルの数が多い場合は、ファイル名を空白または改行で区切って、1 つのファイルに列挙します。次に、このリストファイル名の先頭に \f3@\fP を付けて、\f3javac\fP のコマンド行で指定します。 
D
duke 已提交
114 115 116 117
.RE

.LP
.LP
T
tbell 已提交
118
ソースコードのファイル名は \f2.java\fP 拡張子を、クラスのファイル名は \f2.class\fP 拡張子を持っていなければなりません。 また、ソースファイルとクラスファイルのどちらも、該当するクラスに対応するルート名を持っていなければなりません。たとえば、\f2MyClass\fP という名前のクラスは、\f2MyClass.java\fP という名前のソースファイルに記述します。 このソースファイルは、\f2MyClass.class\fP という名前のバイトコードクラスファイルにコンパイルされます。
D
duke 已提交
119 120
.LP
.LP
T
tbell 已提交
121
内部クラスが定義されていると、追加のクラスファイルが生成されます。これらのクラスファイルの名前は、\f2MyClass$MyInnerClass.class\fP のように、外部クラス名と内部クラス名を組み合わせたものになります。
D
duke 已提交
122 123
.LP
.LP
T
tbell 已提交
124
ソースファイルは、パッケージツリーを反映したディレクトリツリーに配置する必要があります。たとえば、すべてのソースファイルを \f3/workspace\fP に置いている場合、\f2com.mysoft.mypack.MyClass\fP のソースコードは \f3/workspace/com/mysoft/mypack/MyClass.java\fP にある必要があります。
D
duke 已提交
125 126
.LP
.LP
T
tbell 已提交
127
デフォルトでは、コンパイラは、各クラスファイルを対応するソースファイルと同じディレクトリに置きます。別の出力先ディレクトリを指定するには、\f3\-d\fP を使用します (このあとのオプションを参照)
D
duke 已提交
128
.LP
T
tbell 已提交
129
.SH "オプション"
D
duke 已提交
130 131 132 133
.LP

.LP
.LP
T
tbell 已提交
134
コンパイラには、現在の開発環境でサポートされており、将来のリリースでもサポートされる標準オプションのセットがあります。これ以外の非標準オプションは、現在の仮想マシンおよびコンパイラの実装に固有のオプションで、将来に変更される可能性があります。非標準オプションは、\f3\-X\fP で始まります。
D
duke 已提交
135 136
.LP
.SS 
T
tbell 已提交
137
標準オプション
D
duke 已提交
138 139 140 141 142 143 144
.LP
.RS 3

.LP
.RS 3
.TP 3
\-Akey[=value] 
T
tbell 已提交
145
注釈プロセッサに渡されるオプション。これらは、javac によって直接解釈されず、個々のプロセッサによって使用されます。 \f2key\fP には、1 つまたは複数の識別子を「.」で区切ったものを指定してください。 
D
duke 已提交
146
.TP 3
T
tbell 已提交
147 148
\-cp path または \-classpath path 
ユーザーのクラスファイルおよび (場合によっては) 注釈プロセッサやソースファイルの検索場所を指定します。このクラスパスは \f3CLASSPATH\fP 環境変数のユーザークラスパスをオーバーライドします。\f3CLASSPATH\fP\f3\-cp\fP\f3\-classpath\fP のいずれも指定されていない場合、ユーザークラスパスは、現在のディレクトリになります。詳細は、
D
duke 已提交
149
.na
T
tbell 已提交
150
\f2「クラスパスの設定」\fP @
D
duke 已提交
151
.fi
T
tbell 已提交
152
http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 
D
duke 已提交
153
.LP
T
tbell 已提交
154
\f3\-sourcepath\fP オプションが指定されていない場合は、ソースファイルもユーザークラスパスから検索されます。 
D
duke 已提交
155
.LP
T
tbell 已提交
156
\f3\-processorpath\fP オプションが指定されていない場合は、注釈プロセッサもユーザークラスパスから検索されます。  
D
duke 已提交
157
.LP
T
tbell 已提交
158
便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます。
D
duke 已提交
159 160
.br
.br
T
tbell 已提交
161
たとえば、ディレクトリ \f2foo\fP  \f2a.jar\fP  \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP  \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。\f3:\fPコマンド行環境の構成によっては、\f2javac \-cp "*.jar" MyClass.java\fP などのように、ワイルドカード文字を引用符で囲まなければならない場合があります。  
D
duke 已提交
162 163
.TP 3
\-Djava.ext.dirs=directories 
T
tbell 已提交
164
インストール型拡張機能の位置をオーバーライドします。 
D
duke 已提交
165 166
.TP 3
\-Djava.endorsed.dirs=directories 
T
tbell 已提交
167
承認された標準パスの位置をオーバーライドします。 
D
duke 已提交
168 169
.TP 3
\-d directory 
T
tbell 已提交
170
クラスファイルの出力先ディレクトリを設定します。そのディレクトリはすでに存在している必要があります。 \f3javac\fP はディレクトリを作成しません。クラスがパッケージの一部である場合、\f3javac\fP は、必要に応じてディレクトリを作成し、パッケージ名を反映したサブディレクトリにクラスファイルを置きます。たとえば、\f3\-d /home/myclasses\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP である場合、クラスファイルは \f2/home/myclasses/com/mypackage/MyClass.class\fP になります。 
D
duke 已提交
171
.LP
T
tbell 已提交
172
\f3\-d\fP が指定されなかった場合、\f3javac\fP は各クラスファイルを、その生成元となるソースファイルと同じディレクトリ内に格納します。 
D
duke 已提交
173
.LP
T
tbell 已提交
174
\f3:\fP\f3\-d\fP で指定したディレクトリはユーザークラスパスに自動的には追加されません。  
D
duke 已提交
175 176
.TP 3
\-deprecation 
T
tbell 已提交
177
推奨されないメンバーやクラスが、使用またはオーバーライドされるたびに説明を表示します。\f3\-deprecation\fP が指定されていない場合、\f3javac\fP は、推奨されないメンバーやクラスを使用またはオーバーライドしているソースファイルの要約を表示します。\f3\-deprecation\fP  \f3\-Xlint:deprecation\fP の省略表記です。 
D
duke 已提交
178 179
.TP 3
\-encoding encoding 
T
tbell 已提交
180
ソースファイルのエンコーディング名 (\f2EUC\-JP\fP  \f2UTF\-8\fP など) を指定します。\f3\-encoding\fP が指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。 
D
duke 已提交
181 182
.TP 3
\-g 
T
tbell 已提交
183
局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号およびソースファイル情報だけが生成されます。 
D
duke 已提交
184 185
.TP 3
\-g:none 
T
tbell 已提交
186
デバッグ情報を生成しません。 
D
duke 已提交
187 188
.TP 3
\-g:{keyword list} 
T
tbell 已提交
189
コンマで区切られたキーワードリストにより指定された、特定の種類のデバッグ情報だけを生成します。次のキーワードが有効です。 
D
duke 已提交
190 191 192
.RS 3
.TP 3
source 
T
tbell 已提交
193
ソースファイルのデバッグ情報 
D
duke 已提交
194 195
.TP 3
lines 
T
tbell 已提交
196
行番号のデバッグ情報 
D
duke 已提交
197 198
.TP 3
vars 
T
tbell 已提交
199
局所変数のデバッグ情報 
D
duke 已提交
200 201 202
.RE
.TP 3
\-help 
T
tbell 已提交
203
標準オプションの形式を表示します。 
D
duke 已提交
204 205
.TP 3
\-implicit:{class,none} 
T
tbell 已提交
206
暗黙的にロードされたソースファイルに対するクラスファイルの生成を制御します。クラスファイルを自動生成するには、\f3\-implicit:class\fP を使用します。クラスファイルの生成を抑制するには、\f3\-implicit:none\fP を使用します。 このオプションが指定されなかった場合のデフォルト動作は、クラスファイルの自動生成になります。その場合、そのようなクラスファイルが生成された時に注釈処理も実行されると、コンパイラから警告が発行されます。 このオプションが明示的に設定された場合には、警告は発行されません。 「型の検索」を参照してください。 
D
duke 已提交
207 208
.TP 3
\-nowarn 
T
tbell 已提交
209
警告メッセージを無効にします。これは \f3\-Xlint:none\fP と同じ意味です。 
D
duke 已提交
210 211
.TP 3
\-proc: {none,only} 
T
tbell 已提交
212
注釈処理、コンパイル、その両方、のいずれを実行するかを制御します。\f3\-proc:none\fP は、注釈処理なしでコンパイルが実行されることを意味します。\f3\-proc:only\fP は、注釈処理だけが実行され、後続のコンパイルはまったく実行されないことを意味します。 
D
duke 已提交
213 214
.TP 3
\-processor class1[,class2,class3...] 
T
tbell 已提交
215
実行する注釈プロセッサの名前。これを指定した場合、デフォルトの検索処理は省略されます。 
D
duke 已提交
216 217
.TP 3
\-processorpath path 
T
tbell 已提交
218
注釈プロセッサの検索場所を指定します。 このオプションを使用しなかった場合、クラスパス内でプロセッサの検索が行われます。 
D
duke 已提交
219 220
.TP 3
\-s dir 
T
tbell 已提交
221
生成されたソースファイルの格納先となるディレクトリを指定します。そのディレクトリはすでに存在している必要があります。 \f3javac\fP は作成しません。クラスがパッケージの一部になっていた場合、コンパイラはそのソースファイルを、パッケージ名を反映したサブディレクトリ内に格納します。 その際、必要に応じてディレクトリを作成します。たとえば、ユーザーが \f3\-s /home/mysrc\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP であった場合、そのソースファイルは \f2/home/mysrc/com/mypackage/MyClass.java\fP 内に格納されます。 
D
duke 已提交
222 223
.TP 3
\-source release 
T
tbell 已提交
224
受け付けるソースコードのバージョンを指定します。\f2release\fP には次の値を指定できます。 
D
duke 已提交
225 226 227
.RS 3
.TP 3
1.3 
T
tbell 已提交
228
このコンパイラでは、JDK 1.3 以降に導入されたアサーション、総称、または他の言語機能をサポートしません。 
D
duke 已提交
229 230
.TP 3
1.4 
T
tbell 已提交
231
JDK 1.4 で導入された、アサーションを含むコードを受け付けます。 
D
duke 已提交
232 233
.TP 3
1.5 
T
tbell 已提交
234
JDK 5 で導入された総称および他の言語機能を含んだコードを受け付けます。 
D
duke 已提交
235 236
.TP 3
5 
T
tbell 已提交
237
1.5 と同義です。 
D
duke 已提交
238 239
.TP 3
1.6 
T
tbell 已提交
240
これがデフォルト値です。Java SE 6 では言語に対する変更は導入されませんでしたが、ソースファイル内のエンコーディングエラーが、以前のような「警告」ではなく、「エラー」として報告されるようになりました。 
D
duke 已提交
241 242
.TP 3
6 
T
tbell 已提交
243
1.6 と同義です。 
D
duke 已提交
244 245 246
.RE
.TP 3
\-sourcepath sourcepath 
T
tbell 已提交
247
クラスまたはインタフェースの定義を検索するソースコードパスを指定します。ユーザークラスパスと同様に、ソースパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ソースパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。パッケージを使っている場合は、ディレクトリまたはアーカイブ内のローカルパス名がパッケージ名を反映していなければなりません。 
D
duke 已提交
248
.LP
T
tbell 已提交
249
\f3:\fP\ クラスパスからクラスだけでなくそのソースも見つかった場合、そのクラスは自動再コンパイルの対象になることがあります。「型の検索」を参照してください。  
D
duke 已提交
250 251
.TP 3
\-verbose 
T
tbell 已提交
252
詳細な出力を表示します。ロードされるクラスおよびコンパイルされるソースファイルごとの情報が出力されます。 
D
duke 已提交
253 254
.TP 3
\-X 
T
tbell 已提交
255
非標準オプションに関する情報を表示して終了します。 
D
duke 已提交
256 257 258 259 260
.RE

.LP
.RE
.SS 
T
tbell 已提交
261
クロスコンパイルオプション
D
duke 已提交
262 263 264 265 266
.LP
.RS 3

.LP
.LP
T
tbell 已提交
267
デフォルトでは、クラスのコンパイルは、\f3javac\fP が添付されているプラットフォームのブートストラップクラスおよび拡張機能クラスに対して行われます。ただし、\f3javac\fP は、異なる Java プラットフォームに実装されたブートストラップクラスおよび拡張機能クラスに対してコンパイルを行う「クロスコンパイル」もサポートしています。クロスコンパイルを行う場合は、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使うことが重要です。 このあとの「クロスコンパイルの例」を参照してください。
D
duke 已提交
268 269 270 271
.LP
.RS 3
.TP 3
\-target version 
T
tbell 已提交
272
指定されたバージョンの VM をターゲットにしたクラスファイルを生成します。このクラスファイルは、指定されたターゲット以降のバージョンでは動作しますが、それより前のバージョンの VM では動作しません。有効なターゲットは、\f31.1\fP\f31.2\fP\f31.3\fP\f31.4\fP\f31.5\fP (\f35\fP も可)、および \f31.6\fP (\f36\fP も可) です。 
D
duke 已提交
273
.LP
T
tbell 已提交
274
\f3\-target\fP のデフォルトは、次のように \f3\-source\fP の値によって決まります。 
D
duke 已提交
275 276 277
.RS 3
.TP 2
o
T
tbell 已提交
278
\-source \f3指定されなかった\fP場合、\-target の値は \f31.6\fP になります。 
D
duke 已提交
279 280
.TP 2
o
T
tbell 已提交
281
\-source \f31.2\fP の場合、\-target の値は \f31.4\fP になります。 
D
duke 已提交
282 283
.TP 2
o
T
tbell 已提交
284
\-source \f31.3\fP の場合、\-target の値は \f31.4\fP になります。 
D
duke 已提交
285 286
.TP 2
o
T
tbell 已提交
287
\-source \f3それ以外の値の場合はすべて\fP\\\-target の値は \f3\-source\fP の値になります。 
D
duke 已提交
288 289 290
.RE
.TP 3
\-bootclasspath bootclasspath 
T
tbell 已提交
291
指定された一連のブートクラスに対してクロスコンパイルを行います。ユーザークラスパスと同様に、ブートクラスパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ブートクラスパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。 
D
duke 已提交
292 293
.TP 3
\-extdirs directories 
T
tbell 已提交
294
指定された拡張機能ディレクトリに対してクロスコンパイルを行います。\f2directories\fP には、コロンで区切ったディレクトリのリストを指定します。指定したディレクトリ内の各 JAR アーカイブから、クラスファイルが検索されます。 
D
duke 已提交
295 296 297 298 299
.RE

.LP
.RE
.SS 
T
tbell 已提交
300
非標準オプション
D
duke 已提交
301 302 303 304 305 306 307
.LP
.RS 3

.LP
.RS 3
.TP 3
\-Xbootclasspath/p:path 
T
tbell 已提交
308
ブートストラップクラスパスの前に追加します。 
D
duke 已提交
309 310
.TP 3
\-Xbootclasspath/a:path 
T
tbell 已提交
311
ブートストラップクラスパスの後ろに追加します。 
D
duke 已提交
312 313
.TP 3
\-Xbootclasspath/:path 
T
tbell 已提交
314
ブートストラップクラスファイルの位置をオーバーライドします。 
D
duke 已提交
315 316
.TP 3
\-Xlint 
T
tbell 已提交
317
推奨されるすべての警告を有効にします。このリリースでは、利用可能なすべての警告が推奨されています。 
D
duke 已提交
318 319
.TP 3
\-Xlint:none 
T
tbell 已提交
320
Java 言語仕様では指定されていないすべての警告を無効にします。 
D
duke 已提交
321 322
.TP 3
\-Xlint:\-name 
T
tbell 已提交
323
警告 \f2name\fP を無効にします。 ただし、\f2name\fP は、\f3\-Xlint:\fP\f2name\fP に使用できる警告名のいずれかになります。 この警告名は次のとおりです。 
D
duke 已提交
324 325
.TP 3
\-Xlint:unchecked 
T
tbell 已提交
326
Java 言語仕様で指定されている未検査変換警告の詳細を示します。 
D
duke 已提交
327 328
.TP 3
\-Xlint:path 
T
tbell 已提交
329
存在しないパス (classpathsourcepath など) ディレクトリについて警告します。 
D
duke 已提交
330 331
.TP 3
\-Xlint:serial 
T
tbell 已提交
332
\f2serialVersionUID\fP 定義が直列化可能クラスにないことを警告します。 
D
duke 已提交
333 334
.TP 3
\-Xlint:finally 
T
tbell 已提交
335
正常に完了できない \f2finally\fP 節について警告します。 
D
duke 已提交
336 337
.TP 3
\-Xlint:fallthrough 
T
tbell 已提交
338
fall\-through ケースの \f2switch\fP ブロックをチェックし、検出されたものに対して警告メッセージを表示します。Fall\-through ケースは、\f2switch\fP ブロック内の最後のケースを除くケースです。 このコードには \f2break\fP 文は含まれません。 コードの実行をそのケースから次のケースへ移動します。たとえば、この \f2switch\fP ブロック内の \f2case 1\fP ラベルに続くコードは、\f2break\fP 文で終わっていません。 
D
duke 已提交
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363
.RS 3

.LP
.nf
\f3
.fl
switch (x) {
.fl
case 1:
.fl
       System.out.println("1");
.fl
       //  No  break;  statement here.
.fl
case 2:
.fl
       System.out.println("2");
.fl
}
.fl
            
.fl
\fP
.fi
.RE
T
tbell 已提交
364
このコードのコンパイル時に \f2\-Xlint:fallthrough\fP フラグが使用されていた場合、コンパイラは 当該ケースの行番号とともに、fall\-through ケースの可能性があることを示す警告を発行します。 
D
duke 已提交
365
.TP 3
T
tbell 已提交
366 367
\-Xmaxerrs number 
印刷するエラーの最大数を設定します。 
D
duke 已提交
368 369
.TP 3
\-Xmaxwarns number 
T
tbell 已提交
370
印刷する警告の最大数を設定します。 
D
duke 已提交
371 372
.TP 3
\-Xstdout filename 
T
tbell 已提交
373
コンパイラのメッセージを、指定されたファイルに送ります。デフォルトでは、コンパイラのメッセージは \f2System.err\fP に送られます。 
D
duke 已提交
374 375
.TP 3
\-Xprefer:{newer,source} 
T
tbell 已提交
376
ある型に対してソースファイルとクラスファイルの両方が見つかった場合、そのどちらのファイルを読み取るべきかを指定します (「型の検索」を参照)\f2\-Xprefer:newer\fP を使用した場合、ある型に対するソースファイルとクラスファイルの新しい方が読み取られます (デフォルト)\f2\-Xprefer:source\fPオプションを使用した場合、ソースファイルが読み取られます。\f2SOURCE\fP の保存ポリシーを使って宣言された注釈に任意の注釈プロセッサがアクセスできるようにしたい場合は、\f2\-Xprefer:source\fPを使用してください。 
D
duke 已提交
377 378
.TP 3
\-Xprint 
T
tbell 已提交
379
指定された型のテキスト表現をデバッグ目的で出力します。 注釈処理、コンパイルのどちらも実行しません。出力形式は変更される可能性があります。 
D
duke 已提交
380 381
.TP 3
\-XprintProcessorInfo 
T
tbell 已提交
382
ある特定のプロセッサが処理を依頼されている注釈に関する情報を出力します。 
D
duke 已提交
383 384
.TP 3
\-XprintRounds 
T
tbell 已提交
385
初回および後続の注釈処理ラウンドに関する情報を出力します。 
D
duke 已提交
386 387 388 389 390
.RE

.LP
.RE
.SS 
T
tbell 已提交
391
\-J オプション
D
duke 已提交
392 393 394 395 396 397 398
.LP
.RS 3

.LP
.RS 3
.TP 3
\-Joption 
T
tbell 已提交
399
\f3javac\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。このオプションは \f3\-X\fP で始まっていませんが、\f3javac\fP の「標準オプション」ではありません。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 
D
duke 已提交
400
.LP
T
tbell 已提交
401
\f3:\fP \  \f3CLASSPATH\fP\f3\-classpath\fP\f3\-bootclasspath\fP、および \f3\-extdirs\fP は、\f3javac\fP を実行するために使うクラスを指定するものではありません。このような方法でコンパイラの実装を操作することは、通常は無意味であり、常に危険を伴います。このような方法を使う必要がある場合は、\f3\-J\fP オプションを使って、必要なオプションを背後の \f3java\fP 起動ツールに渡してください。  
D
duke 已提交
402 403 404 405
.RE

.LP
.RE
T
tbell 已提交
406
.SH "コマンド行引数ファイル"
D
duke 已提交
407 408 409 410
.LP

.LP
.LP
T
tbell 已提交
411
\f2javac\fP のコマンド行を短くしたり簡潔にしたりするために、\f2javac\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。この方法を使うと、どのオペレーティングシステム上でも、任意の長さの javac コマンドを作成できます。
D
duke 已提交
412 413
.LP
.LP
T
tbell 已提交
414
引数ファイルには、javac のオプションとソースファイル名を自由に組み合わせて記述できます。ファイル内の各引数は、スペースまたは改行で区切ります。ファイル名に空白が含まれている場合は、そのファイル名全体を二重引用符で囲みます。
D
duke 已提交
415 416
.LP
.LP
T
tbell 已提交
417
引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。引数ファイル内のファイル名リストでは、ワイルドカード (*) は使用できません。たとえば、\f2*.java\fP とは指定できません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。
D
duke 已提交
418 419
.LP
.LP
T
tbell 已提交
420
javac を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。javac は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
D
duke 已提交
421 422
.LP
.SS 
T
tbell 已提交
423
引数ファイルを 1 つ指定する例
D
duke 已提交
424 425
.LP
.LP
T
tbell 已提交
426
\f2argfile\fP という名前の引数ファイルにすべての javac 引数を格納する場合は、次のように指定します。
D
duke 已提交
427 428 429 430 431 432 433 434 435 436 437 438
.LP
.nf
\f3
.fl
  % \fP\f3javac @argfile\fP
.fl
      
.fl
.fi

.LP
.LP
T
tbell 已提交
439
この引数ファイルには、次の例で示されている 2 つのファイルの内容を両方とも入れることができます。
D
duke 已提交
440 441
.LP
.SS 
T
tbell 已提交
442
引数ファイルを 2 つ指定する例
D
duke 已提交
443 444
.LP
.LP
T
tbell 已提交
445
たとえば、javac オプション用に 1 ファイル、ソースファイル名用に 1 ファイルというように、2 つの引数ファイルを作成することもできます。なお、このあとのリストでは、行の継続文字を使用していません。
D
duke 已提交
446 447
.LP
.LP
T
tbell 已提交
448
以下の内容を含む \f2options\fP という名前のファイルを作成します。
D
duke 已提交
449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465
.LP
.nf
\f3
.fl
     \-d classes
.fl
     \-g
.fl
     \-sourcepath /java/pubs/ws/1.3/src/share/classes
.fl
      
.fl
\fP
.fi

.LP
.LP
T
tbell 已提交
466
以下の内容を含む \f2classes\fP という名前のファイルを作成します。
D
duke 已提交
467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483
.LP
.nf
\f3
.fl
     MyClass1.java
.fl
     MyClass2.java
.fl
     MyClass3.java
.fl
      
.fl
\fP
.fi

.LP
.LP
T
tbell 已提交
484
次のコマンドを使用して \f3javac\fP を実行します。
D
duke 已提交
485 486 487 488 489 490 491 492 493 494 495 496
.LP
.nf
\f3
.fl
  % \fP\f3javac @options @classes\fP
.fl
      
.fl
.fi

.LP
.SS 
T
tbell 已提交
497
パス付きの引数ファイルの例
D
duke 已提交
498 499
.LP
.LP
T
tbell 已提交
500
引数ファイルには、パスを指定できます。 ただし、そのファイル内に指定されたファイル名は、現在の作業ディレクトリから見た相対パスになります。 つまり、下の例の場合は、\f2path1\fP  \f2path2\fP から見た相対パスではありません。
D
duke 已提交
501 502 503 504 505 506 507 508 509 510 511
.LP
.nf
\f3
.fl
  % \fP\f3javac @path1/options @path2/classes\fP
.fl
      
.fl
.fi

.LP
T
tbell 已提交
512
.SH "注釈処理"
D
duke 已提交
513 514 515 516
.LP

.LP
.LP
T
tbell 已提交
517
\f3javac\fP が注釈処理を直接サポートしているため、独立した注釈処理ツールである \f3apt\fP を使用する必要がなくなりました。
D
duke 已提交
518 519
.LP
.LP
T
tbell 已提交
520
注釈処理の API は、\f2javax.annotation.processing\fP および \f2javax.lang.model\fP パッケージとそのサブパッケージ内に定義されています。
D
duke 已提交
521 522
.LP
.SS 
T
tbell 已提交
523
注釈処理の概要
D
duke 已提交
524 525
.LP
.LP
T
tbell 已提交
526 527 528 529 530
\f3\-proc:none\fP オプションによって注釈処理が無効化されないかぎり、コンパイラは使用可能なすべての注釈プロセッサを検索します。検索パスは \f3\-processorpath\fP オプションを使って指定できます。 検索パスを指定しなかった場合は、ユーザークラスパスが使用されます。プロセッサの検索は、検索パス上の
.br
\f2\  META\-INF/services/javax.annotation.processing.Processor\fP
.br
という名前のサービスプロバイダ構成ファイルに基づいて行われます。このようなファイルには、使用するすべての注釈プロセッサの名前を、1 行に 1 つずつ含めてください。また、別の方法として、\f3\-processor\fP オプションを使ってプロセッサを明示的に指定することもできます。
D
duke 已提交
531 532
.LP
.LP
T
tbell 已提交
533
コンパイラは、コマンド行のソースファイルやクラスを走査することで、どのような注釈が存在しているかを確認し終わると、プロセッサに対して問い合わせを行い、それらのプロセッサがの注釈を処理できるのかを確認します。一致するものが見つかった場合、そのプロセッサが呼び出されます。各プロセッサは、自身が処理する注釈を「要求」できます。 その場合、それらの注釈に対する別のプロセッサを見つける試みは行われません。すべての注釈が要求されてしまうと、コンパイラはそれ以上プロセッサの検索を行いません。
D
duke 已提交
534 535
.LP
.LP
T
tbell 已提交
536
いずれかのプロセッサによって新しいソースファイルが生成されると、注釈処理の 2 回目のラウンドが開始されます。新しく生成されたすべてのソースファイルが走査され、前回と同様に注釈が処理されます。以前のラウンドで呼び出されたプロセッサはすべて、後続のどのラウンドでも呼び出されます。これが、新しいソースファイルが生成されなくなるまで続きます。
D
duke 已提交
537 538
.LP
.LP
T
tbell 已提交
539
あるラウンドで新しいソースファイルが生成されなかった場合、注釈プロセッサがあと 1 回だけ呼び出され、必要な処理を実行する機会が与えられます。 最後に、\f3\-proc:only\fP オプションが使用されないかぎり、コンパイラは、元のソースファイルと生成されたすべてのソースファイルをコンパイルします。
D
duke 已提交
540 541
.LP
.SS 
T
tbell 已提交
542
暗黙的にロードされたソースファイル
D
duke 已提交
543 544
.LP
.LP
T
tbell 已提交
545
コンパイラは、一連のソースファイルをコンパイルする際に、別のソースファイルを暗黙的にロードしなければならない場合があります (「型の検索」を参照)。そのようなファイルは、現時点では注釈処理の対象になりません。デフォルトでは、注釈処理が実行され、かつ暗黙的にロードされたソースファイルが 1 つでもコンパイルされた場合にコンパイラは警告を発行します。この警告を抑制する方法については、\-implicit オプションを参照してください。
D
duke 已提交
546
.LP
T
tbell 已提交
547
.SH "型の検索"
D
duke 已提交
548 549 550 551
.LP

.LP
.LP
T
tbell 已提交
552
ソースファイルをコンパイルする場合、コマンド行で指定したソースファイルに型の定義が見つからないとき、コンパイラは通常、その型に関する情報を必要とします。コンパイラは、ソースファイルで使われているクラスまたはインタフェース、拡張されているクラスまたはインタフェース、あるいは実装されているクラスまたはインタフェースすべてについて、型の情報を必要とします。これには、ソースファイルで明示的には言及されていなくても、継承を通じて情報を提供するクラスとインタフェースも含まれます。
D
duke 已提交
553 554
.LP
.LP
T
tbell 已提交
555
たとえば、\f3java.applet.Applet\fP をサブクラスにした場合、\f3アプレットの\fP祖先のクラス(\f3java.awt.Panel\fP\f3java.awt.Container\fP\f3java.awt.Component\fP\f3java.lang.Object\fP)を使用していることになります。
D
duke 已提交
556 557
.LP
.LP
T
tbell 已提交
558
コンパイラは、型の情報が必要になると、その型を定義しているソースファイルまたはクラスファイルを探します。まず、ブートストラップクラスと拡張機能クラスを検索し、続いてユーザークラスパス (デフォルトではカレントディレクトリ) を検索します。ユーザークラスパスは、\f3CLASSPATH\fP 環境変数を設定して定義するか、または \f3\-classpath\fP コマンド行オプションを使って設定します。詳細は、
D
duke 已提交
559
.na
T
tbell 已提交
560
\f2「クラスパスの設定」\fP @
D
duke 已提交
561
.fi
T
tbell 已提交
562
http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。
D
duke 已提交
563 564
.LP
.LP
T
tbell 已提交
565
\-sourcepath オプションが指定されている場合、コンパイラは、指定されたパスからソースファイルを検索します。 それ以外の場合は、ユーザークラスパスからクラスファイルとソースファイルの両方を検索します。
D
duke 已提交
566 567
.LP
.LP
T
tbell 已提交
568
\f3\-bootclasspath\fP オプションと \f3\-extdirs\fP オプションを使うと、別のブートストラップクラスや拡張機能クラスを指定できます。 このあとの「クロスコンパイルオプション」を参照してください。
D
duke 已提交
569 570
.LP
.LP
T
tbell 已提交
571
型の検索に成功したときに得られる結果は、クラスファイル、ソースファイル、またはその両方である場合があります。両方が見つかった場合、そのどちらを使用すべきかを \-Xprefer オプションでコンパイラに指示できます。\f3newer\fP が指定された場合、コンパイラは 2 つのファイルの新しい方を使用します。\f3source\fP が指定された場合、コンパイラはソースファイルを使用します。デフォルトは \f3newer\fP です。
D
duke 已提交
572 573
.LP
.LP
T
tbell 已提交
574
型の検索自体によって、または \f3\-Xprefer\fP が設定された結果として必要な型のソースファイルが見つかった場合、コンパイラはそのソースファイルを読み取り、必要な情報を取得します。さらに、コンパイラはデフォルトで、そのソースファイルのコンパイルも行います。\-implicit オプションを使えばその動作を指定できます。\f3none\fP を指定した場合、そのソースファイルのクラスファイルは生成されません。\f3class\fP を指定した場合、そのソースファイルのクラスファイルが生成されます。
D
duke 已提交
575 576
.LP
.LP
T
tbell 已提交
577
コンパイラは、注釈処理の完了後に、ある型情報の必要性を認識しない場合があります。その型情報があるソースファイル内に見つかり、かつ \f3\-implicit\fP オプションが指定されていない場合は、そのファイルが注釈処理の対象とならずにコンパイルされることを、コンパイラがユーザーに警告します。この警告を無効にするには、(そのファイルが注釈処理の対象となるように) そのファイルをコマンド行に指定するか、あるいはそのようなソースファイルに対してクラスファイルを生成すべきかどうかを \f3\-implicit\fP オプションを使って指定します。
D
duke 已提交
578
.LP
T
tbell 已提交
579
.SH "プログラマティックインタフェース"
D
duke 已提交
580 581 582 583
.LP

.LP
.LP
T
tbell 已提交
584
\f3javac\fP は、\f2javax.tools\fP パッケージ内のクラスとインタフェースによって定義される新しい Java Compiler API をサポートします。
D
duke 已提交
585 586
.LP
.SS 
T
tbell 已提交
587

D
duke 已提交
588 589
.LP
.LP
T
tbell 已提交
590
コマンド行から指定された引数を使ってコンパイルを実行するには、次のようなコードを使用します。
D
duke 已提交
591 592 593 594 595 596 597 598 599 600 601 602 603 604 605
.LP
.nf
\f3
.fl
JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
.fl
int rc = javac.run(null, null, null, args);
.fl
      
.fl
\fP
.fi

.LP
.LP
T
tbell 已提交
606
この場合、標準出力ストリームにすべての診断メッセージが書き出され、コマンド行から呼び出された \f3javac\fP が返すのと同じ終了コードが返されます。
D
duke 已提交
607 608
.LP
.LP
T
tbell 已提交
609
\f2javax.tools.JavaCompiler\fP インタフェース上のほかのメソッドを使えば、診断メッセージの処理やファイルの読み取り元/書き込み先の制御などを行えます。
D
duke 已提交
610 611
.LP
.SS 
T
tbell 已提交
612
旧式のインタフェース
D
duke 已提交
613 614 615 616 617
.LP
.RS 3

.LP
.LP
T
tbell 已提交
618
\f3:\fP \ この API は、下位互換性を確保するためだけに残されています。 新しいコードでは、必ず前述の Java Compiler API を使用してください。
D
duke 已提交
619 620
.LP
.LP
T
tbell 已提交
621
\f2com.sun.tools.javac.Main\fP クラスには、プログラム内からコンパイラを呼び出すための static メソッドが 2 つ用意されています。 それらを次に示します。
D
duke 已提交
622 623 624 625 626 627 628 629 630 631 632 633 634 635 636
.LP
.nf
\f3
.fl
public static int compile(String[] args);
.fl
public static int compile(String[] args, PrintWriter out);
.fl
      
.fl
\fP
.fi

.LP
.LP
T
tbell 已提交
637
\f2args\fP パラメータは、javac プログラムに通常渡される任意のコマンド行引数を表しています。 その概要については、前出の「形式」節を参照してください。
D
duke 已提交
638 639
.LP
.LP
T
tbell 已提交
640
\f2out\fP パラメータは、コンパイラの診断メッセージの出力先を示します。
D
duke 已提交
641 642
.LP
.LP
T
tbell 已提交
643
戻り値は、\f3javac\fP の終了値と同じです。
D
duke 已提交
644 645
.LP
.LP
T
tbell 已提交
646
名前が \f2com.sun.tools.javac\fP で始まるパッケージ (非公式には \f2com.sun.tools.javac\fP のサブパッケージとして知られる) に含まれる\f3その他の\fPクラスやメソッドは、どれも完全に内部用であり、いつでも変更される可能性があります。
D
duke 已提交
647 648
.LP
.RE
T
tbell 已提交
649
.SH "例"
D
duke 已提交
650 651
.LP
.SS 
T
tbell 已提交
652
簡単なプログラムのコンパイル
D
duke 已提交
653 654 655 656 657
.LP
.RS 3

.LP
.LP
T
tbell 已提交
658
\f2Hello.java\fP というソースファイルで、\f3greetings.Hello\fP という名前のクラスを定義しているとします。\f2greetings\fP ディレクトリは、ソースファイルとクラスファイルの両方があるパッケージディレクトリで、現在のディレクトリのすぐ下にあります。このため、この例では、デフォルトのユーザークラスパスを使用できます。また、\f3\-d\fP を使って別の出力先ディレクトリを指定する必要もありません。
D
duke 已提交
659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3ls\fP
.fl
greetings/
.fl
% \f3ls greetings\fP
.fl
Hello.java
.fl
% \f3cat greetings/Hello.java\fP
.fl
package greetings;
.fl

.fl
public class Hello {
.fl
    public static void main(String[] args) {
.fl
        for (int i=0; i < args.length; i++) {
.fl
            System.out.println("Hello " + args[i]);
.fl
        }
.fl
    }
.fl
}
.fl
% \f3javac greetings/Hello.java\fP
.fl
% \f3ls greetings\fP
.fl
Hello.class   Hello.java
.fl
% \f3java greetings.Hello World Universe Everyone\fP
.fl
Hello World
.fl
Hello Universe
.fl
Hello Everyone
.fl
        
.fl
.fi
.RE

.LP
.RE
.SS 
T
tbell 已提交
716
複数のソースファイルのコンパイル
D
duke 已提交
717 718 719 720 721
.LP
.RS 3

.LP
.LP
T
tbell 已提交
722
次の例では、パッケージ \f2greetings\fP 内のすべてのソースファイルをコンパイルします。
D
duke 已提交
723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3ls\fP
.fl
greetings/
.fl
% \f3ls greetings\fP
.fl
Aloha.java         GutenTag.java      Hello.java         Hi.java
.fl
% \f3javac greetings/*.java\fP
.fl
% \f3ls greetings\fP
.fl
Aloha.class         GutenTag.class      Hello.class         Hi.class
.fl
Aloha.java          GutenTag.java       Hello.java          Hi.java
.fl

.fl
        
.fl
.fi
.RE

.LP
.RE
.SS 
T
tbell 已提交
756
ユーザークラスパスの指定
D
duke 已提交
757 758 759 760 761
.LP
.RS 3

.LP
.LP
T
tbell 已提交
762
上の例のソースファイルのうち 1 つを変更し、変更後のファイルを再コンパイルするとします。
D
duke 已提交
763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3pwd\fP
.fl
/examples
.fl
% \f3javac greetings/Hi.java\fP
.fl
        
.fl
.fi
.RE

.LP
.LP
T
tbell 已提交
783
\f2greetings.Hi\fP は、\f2greetings\fP パッケージ内のほかのクラスを参照しているため、コンパイラはこれらのクラスを探す必要があります。上の例では、デフォルトのユーザークラスパスが、パッケージディレクトリを含むディレクトリと同じであるため、コンパイルは正常に実行されます。ただし、現在どのディレクトリにいるかに関係なく、このファイルを再コンパイルする場合は、ユーザークラスパスに \f2/examples\fP を追加する必要があります。ユーザークラスパスにエントリを追加するには、\f3CLASSPATH\fP を設定する方法もありますが、ここでは \f3\-classpath\fP オプションを使うことにします。
D
duke 已提交
784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3javac \-classpath /examples /examples/greetings/Hi.java\fP
.fl
        
.fl
.fi
.RE

.LP
.LP
T
tbell 已提交
800
再度 \f2greetings.Hi\fP を変更してバナーユーティリティーを使うようにした場合は、このバナーユーティリティーもユーザークラスパスを通じてアクセスできるようになっている必要があります。
D
duke 已提交
801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3javac \-classpath /examples:/lib/Banners.jar \\ 
.fl
            /examples/greetings/Hi.java\fP
.fl
        
.fl
.fi
.RE

.LP
.LP
T
tbell 已提交
819
\f2greetings\fP 内のクラスを実行するには、\f2greetings\fP と、\f2greetings\fP が使うクラスの両方にアクセスできる必要があります。
D
duke 已提交
820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3java \-classpath /examples:/lib/Banners.jar greetings.Hi\fP
.fl
        
.fl
.fi
.RE

.LP
.RE
.SS 
T
tbell 已提交
837
ソースファイルとクラスファイルの分離
D
duke 已提交
838 839 840 841 842
.LP
.RS 3

.LP
.LP
T
tbell 已提交
843
特に大規模プロジェクトの場合は、ソースファイルとクラスファイルを別々のディレクトリに置くと便利なことがあります。クラスファイルの出力先を別に指定するには、\f3\-d\fP を使います。ソースファイルはユーザークラスパスにはないので、\f3\-sourcepath\fP を使って、コンパイラがソースファイルを見つけることができるようにします。
D
duke 已提交
844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3ls\fP
.fl
classes/  lib/      src/
.fl
% \f3ls src\fP
.fl
farewells/
.fl
% \f3ls src/farewells\fP
.fl
Base.java      GoodBye.java
.fl
% \f3ls lib\fP
.fl
Banners.jar
.fl
% \f3ls classes\fP
.fl
% \f3javac \-sourcepath src \-classpath classes:lib/Banners.jar \\ 
.fl
            src/farewells/GoodBye.java \-d classes\fP
.fl
% \f3ls classes\fP
.fl
farewells/
.fl
% \f3ls classes/farewells\fP
.fl
Base.class      GoodBye.class
.fl

.fl
        
.fl
.fi
.RE

.LP
.LP
T
tbell 已提交
890
\f3:\fP \ コマンド行では \f2src/farewells/Base.java\fP を指定していませんが、このファイルもコンパイラによってコンパイルされています。自動コンパイルを監視するには、\f3\-verbose\fP オプションを使います。
D
duke 已提交
891 892 893
.LP
.RE
.SS 
T
tbell 已提交
894
クロスコンパイルの例
D
duke 已提交
895 896 897 898 899
.LP
.RS 3

.LP
.LP
T
tbell 已提交
900
ここでは、\f3javac\fP を使って、1.5 VM 上で実行するコードをコンパイルします。
D
duke 已提交
901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918
.LP
.RS 3

.LP
.nf
\f3
.fl
% \fP\f3javac \-target 1.5 \-bootclasspath jdk1.5.0/lib/rt.jar \\ 
.fl
            \-extdirs "" OldCode.java\fP
.fl
        
.fl
.fi
.RE

.LP
.LP
T
tbell 已提交
919
\f3\-target 1.5\fP オプションにより、1.5 VM と互換性のあるクラスファイルが生成されます。デフォルトでは、\f3javac\fP  JDK 6 用にコンパイルします。
D
duke 已提交
920 921
.LP
.LP
T
tbell 已提交
922
Java プラットフォーム JDK  \f3javac\fP は、デフォルトでは、Java 2 SDK のブートストラップクラスに対してコンパイルを行うので、Java 2 SDK ではなく JDK 1.5 のブートストラップクラスに対してコンパイルを行うように指定する必要があります。これは、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使って指定します。この指定を行わないと、1.5 VM には存在しない Java 2 プラットフォーム API に対応したコンパイルが行われるため、プログラムの実行時に障害が発生することがあります。
D
duke 已提交
923 924
.LP
.RE
T
tbell 已提交
925
.SH "関連項目"
D
duke 已提交
926 927 928 929 930 931 932
.LP

.LP
.RS 3
.TP 2
o
.na
T
tbell 已提交
933
\f2The javac Guide\fP @
D
duke 已提交
934
.fi
T
tbell 已提交
935
http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html 
D
duke 已提交
936 937
.TP 2
o
T
tbell 已提交
938
java(1) \- Java アプリケーション起動ツール」 
D
duke 已提交
939 940
.TP 2
o
T
tbell 已提交
941
jdb(1) \- Java デバッガ」 
D
duke 已提交
942 943
.TP 2
o
T
tbell 已提交
944
javah(1) \- C ヘッダーとスタブファイルジェネレータ」 
D
duke 已提交
945 946
.TP 2
o
T
tbell 已提交
947
javap(1) \- クラスファイル逆アセンブラ」 
D
duke 已提交
948 949
.TP 2
o
T
tbell 已提交
950
javadoc(1) \- Java API ドキュメントジェネレータ」 
D
duke 已提交
951 952
.TP 2
o
T
tbell 已提交
953
jar(1) \- JAR アーカイブツール」 
D
duke 已提交
954 955 956
.TP 2
o
.na
T
tbell 已提交
957
\f2Java 拡張機能フレームワーク」\fP @
D
duke 已提交
958
.fi
T
tbell 已提交
959
http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html 
D
duke 已提交
960 961 962 963 964 965
.RE

.LP

.LP