jdk/src/linux/doc/man/ja/javac.1
author duke
Sat, 01 Dec 2007 00:00:00 +0000
changeset 2 90ce3da70b43
child 2692 345bc8d65b19
permissions -rw-r--r--
Initial load
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
.'" t
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
." Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
     6
." This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
." under the terms of the GNU General Public License version 2 only, as
90ce3da70b43 Initial load
duke
parents:
diff changeset
     8
." published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
." This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
." version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
." accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
." You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
." 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    20
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    21
." CA 95054 USA or visit www.sun.com if you need additional information or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    22
." have any questions.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
."
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
." `
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
.TH javac 1 "2006 年 9 月 4 日" "Java SE 6" "ユーザーコマンド"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
." Generated by html2man
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
.SH 名前
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
javac \- Java プログラミング言語コンパイラ
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    32
.SH "形式"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    33
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    34
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
    37
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    38
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    39
        \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ]
90ce3da70b43 Initial load
duke
parents:
diff changeset
    40
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    41
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
引数は順不同です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    53
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    54
options 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    55
コマンド行オプション
90ce3da70b43 Initial load
duke
parents:
diff changeset
    56
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
sourcefiles 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    58
コンパイルされる 1 つ以上のソースファイル (MyClass.java など)
90ce3da70b43 Initial load
duke
parents:
diff changeset
    59
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
classes 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
注釈の処理対象となる 1 つ以上のクラス (MyPackage.MyClass など)。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    62
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    63
@argfiles 
90ce3da70b43 Initial load
duke
parents:
diff changeset
    64
オプションとソースファイルを列挙した 1 つ以上のファイル。このファイルの中では、\f2\-J\fP オプションは指定できません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    66
90ce3da70b43 Initial load
duke
parents:
diff changeset
    67
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    68
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    69
.SH "機能説明"
90ce3da70b43 Initial load
duke
parents:
diff changeset
    70
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
90ce3da70b43 Initial load
duke
parents:
diff changeset
    72
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    73
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    74
\f3javac\fP ツールは、Java プログラミング言語で記述されたクラスとインタフェースの定義を読み取り、バイトコードのクラスファイルにコンパイルします。また、Java ソースファイルおよびクラス内の注釈の処理も行います。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    75
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    76
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
ソースコードのファイル名を \f3javac\fP に渡すには、次の 2 つの方法があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
    80
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    81
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
    82
ソースファイルの数が少ない場合は、ファイル名をコマンド行で直接指定します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    83
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    84
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
ソースファイルの数が多い場合は、ファイル名を空白または改行で区切って、1 つのファイルに列挙します。次に、このリストファイル名の先頭に \f3@\fP を付けて、\f3javac\fP のコマンド行で指定します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    86
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
    87
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    89
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    90
ソースコードのファイル名は \f2.java\fP 拡張子を、クラスのファイル名は \f2.class\fP 拡張子を持っていなければなりません。また、ソースファイルとクラスファイルのどちらも、該当するクラスに対応するルート名を持っていなければなりません。たとえば、\f2MyClass\fP という名前のクラスは、\f2MyClass.class\fP という名前のソースファイルに記述します。このソースファイルは、MyClass.class という名前のバイトコードクラスファイルにコンパイルされます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    91
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
内部クラスが定義されていると、追加のクラスファイルが生成されます。これらのクラスファイルの名前は、\f2MyClass$MyInnerClass.class\fP のように、外部クラス名と内部クラス名を組み合わせたものになります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    95
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
ソースファイルは、パッケージツリーを反映したディレクトリツリーに配置する必要があります。たとえば、すべてのソースファイルを \f3/workspace\fP に置いている場合、\f2com.mysoft.mypack.MyClass\fP のソースコードは \f3/workspace/com/mysoft/mypack/MyClass.java\fP にある必要があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
    97
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    98
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
    99
デフォルトでは、コンパイラは、各クラスファイルを対応するソースファイルと同じディレクトリに置きます。別の出力先ディレクトリを指定するには、\f3\-d\fP を使用します (このあとの「オプション」を参照)。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   100
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
.SH "オプション"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   103
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
コンパイラには、現在の開発環境でサポートされており、将来のリリースでもサポートされる標準オプションのセットがあります。これ以外の非標準オプションは、現在の仮想マシンおよびコンパイラの実装に固有のオプションで、将来に変更される可能性があります。非標準オプションは、\f3\-X\fP で始まります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
標準オプション
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   112
90ce3da70b43 Initial load
duke
parents:
diff changeset
   113
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   114
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   116
\-Akey[=value] 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   117
注釈プロセッサに渡されるオプション。これらは、javac によって直接解釈されず、個々のプロセッサによって使用されます。\f2key\fP には、1 つまたは複数の識別子を「.」で区切ったものを指定してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   118
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   119
\-cp path または \-classpath path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   120
ユーザーのクラスファイルおよび (場合によっては) 注釈プロセッサやソースファイルの検索場所を指定します。このクラスパスは \f3CLASSPATH\fP 環境変数のユーザークラスパスをオーバーライドします。\f3CLASSPATH\fP、\f3\-cp\fP、\f3\-classpath\fP のいずれも指定されていない場合、ユーザークラスパスは、現在のディレクトリになります。詳細は、
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   122
「\f2Setting the Class Path\fP」
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
(http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath) を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   126
\f3\-sourcepath\fP オプションが指定されていない場合は、ソースファイルもユーザークラスパスから検索されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   127
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   128
\f3\-processorpath\fP オプションが指定されていない場合は、注釈プロセッサもクラスパス内で検索されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   129
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   130
便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じであるとみなされます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   131
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   132
.br
90ce3da70b43 Initial load
duke
parents:
diff changeset
   133
たとえば、ディレクトリ \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 などのように、ワイルドカード文字を引用符で囲まなければならない場合があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   134
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   135
\-Djava.ext.dirs=directories 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   136
インストール型拡張機能の位置をオーバーライドします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   137
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   138
\-Djava.endorsed.dirs=directories 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   139
承認された標準パスの位置をオーバーライドします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   140
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   141
\-d directory 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   142
クラスファイルの出力先ディレクトリを設定します。このディレクトリはあらかじめ用意されている必要があります。\f3javac\fP はディレクトリの作成を行いません。クラスがパッケージの一部である場合、\f3javac\fP は、必要に応じてディレクトリを作成し、パッケージ名を反映したサブディレクトリにクラスファイルを置きます。たとえば、\f3\-d /home/myclasses\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP である場合、クラスファイルは \f2/home/myclasses/com/mypackage/MyClass.class\fP になります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   143
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   144
\f3\-d\fP が指定されなかった場合、\f3javac\fP は各クラスファイルを、その生成元となるソースファイルと同じディレクトリ内に格納します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   145
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   146
\f3注:\fP \  \f3\-d\fP で指定したディレクトリはユーザークラスパスに自動的には追加されません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   147
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   148
\-deprecation 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   149
推奨されないメンバやクラスが、使用またはオーバーライドされるたびに説明を表示します。\f3\-deprecation\fP が指定されていない場合、\f3javac\fP は、推奨されないメンバやクラスを使用またはオーバーライドしているソースファイルの要約を表示します。\f3\-deprecation\fP は \f3\-Xlint:deprecation\fP の省略表記です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   150
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   151
\-encoding encoding 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   152
ソースファイルのエンコーディング名 (\f2EUC\-JP や UTF\-8\fP など) を指定します。\f3\-encoding\fP が指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   153
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   154
\-g 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   155
局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号およびソースファイル情報だけが生成されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   156
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   157
\-g:none 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   158
デバッグ情報を生成しません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   159
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   160
\-g:{keyword list} 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   161
コンマで区切られたキーワードリストにより指定された、特定の種類のデバッグ情報だけを生成します。次のキーワードが有効です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   162
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   163
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   164
source 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   165
ソースファイルのデバッグ情報
90ce3da70b43 Initial load
duke
parents:
diff changeset
   166
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   167
lines 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   168
行番号のデバッグ情報
90ce3da70b43 Initial load
duke
parents:
diff changeset
   169
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   170
vars 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   171
局所変数のデバッグ情報
90ce3da70b43 Initial load
duke
parents:
diff changeset
   172
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   173
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   174
\-help 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   175
標準オプションの形式を表示します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   176
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   177
\-implicit:{class,none} 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   178
暗黙的にロードされたソースファイルに対するクラスファイルの生成を制御します。クラスファイルを自動生成するには、\f3\-implicit:class\fP を使用します。クラスファイルの生成を抑制するには、\f3\-implicit:none\fP を使用します。このオプションが指定されなかった場合のデフォルト動作は、クラスファイルの自動生成になります。その場合、そのようなクラスファイルが生成された時に注釈処理も実行されると、コンパイラから警告が発行されます。このオプションが明示的に設定された場合には、警告は発行されません。「型の検索」を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   179
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   180
\-nowarn 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   181
警告メッセージを無効にします。これは \f3\-Xlint:none\fP と同じ意味です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   182
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   183
\-proc: {none,only} 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   184
注釈処理、コンパイル、その両方、のいずれを実行するかを制御します。\f3\-proc:none\fP は、注釈処理なしでコンパイルが実行されることを意味します。\f3\-proc:only\fP は、注釈処理だけが実行され、後続のコンパイルはまったく実行されないことを意味します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   185
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   186
\-processor class1[,class2,class3...] 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   187
実行する注釈プロセッサの名前。これを指定した場合、デフォルトの検索処理は省略されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   188
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   189
\-processorpath path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   190
注釈プロセッサの検索場所を指定します。このオプションを使用しなかった場合、クラスパス内でプロセッサの検索が行われます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   191
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   192
\-s dir 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   193
生成されたソースファイルの格納先となるディレクトリを指定します。そのディレクトリはすでに存在している必要があります。\f3javac\fP は作成しません。クラスがパッケージの一部になっていた場合、コンパイラはそのソースファイルを、パッケージ名を反映したサブディレクトリ内に格納します。その際、必要に応じてディレクトリを作成します。たとえば、ユーザーが \f3\-s /home/mysrc\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP であった場合、そのソースファイルは \f2/home/mysrc/com/mypackage/MyClass.java\fP 内に格納されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   194
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   195
\-source release 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   196
受け付けるソースコードのバージョンを指定します。\f2release\fP には次の値を指定できます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   197
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   198
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   199
1.3 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   200
このコンパイラでは、JDK 1.3 以降に導入されたアサーション、汎用機能、または他の言語機能をサポート\f2しません\fP。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   201
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   202
1.4 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   203
JDK 1.4 で導入された、アサーションを含むコードを受け付けます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   204
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   205
1.5 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   206
JDK 5 で導入された汎用機能および他の言語機能を含んだコードを受け付けます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   207
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   208
5 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
1.5 と同義です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   210
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   211
1.6 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   212
これがデフォルト値です。Java SE 6 では言語に対する変更は導入されませんでしたが、ソースファイル内のエンコーディングエラーが、以前のような「警告」ではなく、「エラー」として報告されるようになりました。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   213
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   214
6 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   215
1.6 と同義です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   216
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   217
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   218
\-sourcepath sourcepath 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   219
クラスまたはインタフェースの定義を検索するソースコードパスを指定します。ユーザークラスパスと同様に、ソースパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ソースパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。パッケージを使っている場合は、ディレクトリまたはアーカイブ内のローカルパス名がパッケージ名を反映していなければなりません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   220
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   221
\f3注:\fP \  クラスパスからクラスだけでなくそのソースも見つかった場合、そのクラスは自動再コンパイルの対象になることがあります。「型の検索」を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   222
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   223
\-verbose 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   224
詳細な出力を表示します。ロードされるクラスおよびコンパイルされるソースファイルごとの情報が出力されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   225
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   226
\-X 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   227
非標準オプションに関する情報を表示して終了します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   228
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   229
90ce3da70b43 Initial load
duke
parents:
diff changeset
   230
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   231
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   232
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   233
クロスコンパイルオプション
90ce3da70b43 Initial load
duke
parents:
diff changeset
   234
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   235
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   236
90ce3da70b43 Initial load
duke
parents:
diff changeset
   237
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   238
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   239
デフォルトでは、クラスのコンパイルは、\f3javac\fP が添付されているプラットフォームのブートストラップクラスおよび拡張機能クラスに対して行われます。ただし、\f3javac\fP は、異なる Java プラットフォームに実装されたブートストラップクラスおよび拡張機能クラスに対してコンパイルを行う「\f2クロスコンパイル\fP」もサポートしています。クロスコンパイルを行う場合は、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使うことが重要です。このあとの「クロスコンパイルの例」を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   240
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   241
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   242
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   243
\-target version 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   244
指定されたバージョンの VM をターゲットにしたクラスファイルを生成します。このクラスファイルは、指定されたターゲット以降のバージョンでは動作しますが、それより前のバージョンの VM では動作しません。有効なターゲットは、\f31.1\fP、\f31.2\fP、\f31.3\fP、\f31.4\fP、\f31.5\fP (\f35\fP も可)、および \f31.6\fP (\f36\fP も可) です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   245
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   246
\f3\-target\fP のデフォルトは、次のように \f3\-source\fP の値によって決まります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   247
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   248
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   249
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   250
\-source が\f3指定されなかった\fP場合、\-target の値は \f31.6\fP になります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   251
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   252
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   253
\-source が \f31.2\fP の場合、\-target の値は \f31.4\fP になります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   254
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   255
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   256
\-source が \f31.3\fP の場合、\-target の値は \f31.4\fP になります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   257
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   258
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   259
\-source が\f3それ以外の値の場合はすべて\fP、\-target の値は \f3\-source\fP の値になります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   260
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   261
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   262
\-bootclasspath bootclasspath 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   263
指定された一連のブートクラスに対してクロスコンパイルを行います。ユーザークラスパスと同様に、ブートクラスパスの複数のエントリはコロン (\f3:\fP) で区切ります。ブートクラスパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   264
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   265
\-extdirs directories 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   266
指定された拡張機能ディレクトリに対してクロスコンパイルを行います。\f2directories\fP には、コロンで区切ったディレクトリのリストを指定します。指定したディレクトリ内の各 JAR アーカイブから、クラスファイルが検索されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   267
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   268
90ce3da70b43 Initial load
duke
parents:
diff changeset
   269
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   270
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   271
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   272
非標準オプション
90ce3da70b43 Initial load
duke
parents:
diff changeset
   273
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   274
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   275
90ce3da70b43 Initial load
duke
parents:
diff changeset
   276
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   277
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   278
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   279
\-Xbootclasspath/p:path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   280
ブートストラップクラスパスの前に追加します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   281
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   282
\-Xbootclasspath/a:path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   283
ブートストラップクラスパスの後ろに追加します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   284
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   285
\-Xbootclasspath/:path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   286
ブートストラップクラスファイルの位置をオーバーライドします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   287
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   288
\-Xlint 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   289
推奨されるすべての警告を有効にします。このリリースでは、利用可能なすべての警告が推奨されています。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   290
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   291
\-Xlint:none 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   292
Java 言語仕様では指定されていないすべての警告を無効にします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   293
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   294
\-Xlint:\-name 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   295
警告 \f2name\fP を無効にします。ただし、\f2name\fP は、\f3\-Xlint:\fP\f2name\fP に使用できる警告名のいずれかになります。この警告名は次のとおりです。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   296
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   297
\-Xlint:unchecked 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   298
Java 言語仕様で指定されている未検査変換警告の詳細を示します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   299
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   300
\-Xlint:path 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   301
存在しないパス (classpath、sourcepath など) ディレクトリについて警告します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   302
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   303
\-Xlint:serial 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   304
\f2serialVersionUID\fP 定義が直列化可能クラスにないことを警告します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   305
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   306
\-Xlint:finally 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   307
正常に完了できない \f2finally\fP 節について警告します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   308
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   309
\-Xlint:fallthrough 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   310
fall\-through ケースの \f2switch\fP ブロックをチェックし、検出されたものに対して警告メッセージを表示します。fall\-through ケースは、\f2switch\fP ブロック内の最後のケースを除くケースです。このコードには \f2break\fP 文は含まれません。コードの実行をそのケースから次のケースへ移動します。たとえば、この \f2switch\fP ブロック内の \f2case 1\fP ラベルに続くコードは、\f2break\fP 文で終わっていません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   311
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   312
90ce3da70b43 Initial load
duke
parents:
diff changeset
   313
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   314
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   315
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   316
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   317
switch (x) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   318
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   319
case 1:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   320
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   321
       System.out.println("1");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   322
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   323
       //  No  break;  statement here.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   324
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   325
case 2:
90ce3da70b43 Initial load
duke
parents:
diff changeset
   326
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   327
       System.out.println("2");
90ce3da70b43 Initial load
duke
parents:
diff changeset
   328
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   329
}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   330
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   331
            
90ce3da70b43 Initial load
duke
parents:
diff changeset
   332
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   333
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   334
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   335
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   336
このコードのコンパイル時に \f2\-Xlint:fallthrough\fP フラグが使用されていた場合、コンパイラは 当該ケースの行番号とともに、fall\-through ケースの可能性があることを示す警告を発行します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   337
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   338
\-Xmaxerrors number 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   339
印刷するエラーの最大数を設定します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   340
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   341
\-Xmaxwarns number 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   342
印刷する警告の最大数を設定します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   343
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   344
\-Xstdout filename 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   345
コンパイラのメッセージを、指定されたファイルに送ります。デフォルトでは、コンパイラのメッセージは \f2System.err\fP に送られます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   346
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   347
\-Xprefer:{newer,source} 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   348
ある型に対してソースファイルとクラスファイルの両方が見つかった場合、そのどちらのファイルを読み取るべきかを指定します (「型の検索」を参照)。\f2\-Xprefer:newer\fP を使用した場合、ある型に対するソースファイルとクラスファイルの新しい方が読み取られます (デフォルト)。\f2\-Xprefer:source\fP オプションを使用した場合、ソースファイルが読み取られます。\f2SOURCE\fP の保存ポリシーを使って宣言された注釈に任意の注釈プロセッサがアクセスできるようにしたい場合は、\f2\-Xprefer:source\fP を使用してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   349
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   350
\-Xprint 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   351
指定された型のテキスト表現をデバッグ目的で出力します。注釈処理、コンパイルのどちらも実行しません。出力形式は変更される可能性があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   352
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   353
\-XprintProcessorInfo 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   354
ある特定のプロセッサが処理を依頼されている注釈に関する情報を出力します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   355
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   356
\-XprintRounds 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   357
初回および後続の注釈処理ラウンドに関する情報を出力します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   358
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   359
90ce3da70b43 Initial load
duke
parents:
diff changeset
   360
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   361
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   362
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   363
\-J オプション
90ce3da70b43 Initial load
duke
parents:
diff changeset
   364
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   365
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   366
90ce3da70b43 Initial load
duke
parents:
diff changeset
   367
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   368
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   369
.TP 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   370
\-Joption 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   371
\f3javac\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリは 48M バイトに設定されます。このオプションは \f3\-X\fP で始まっていませんが、\f3javac\fP の「標準オプション」ではありません。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   372
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   373
\f3注:\fP \  \f3CLASSPATH\fP、\f3\-classpath\fP、\f3\-bootclasspath\fP、および \f3\-extdirs\fP は、\f3javac\fP を実行するために使うクラスを指定するものでは\f2ありません\fP。このような方法でコンパイラの実装を操作することは、通常は無意味であり、常に危険を伴います。このような方法を使う必要がある場合は、\f3\-J\fP オプションを使って、必要なオプションを背後の \f3java\fP 起動ツールに渡してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   374
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   375
90ce3da70b43 Initial load
duke
parents:
diff changeset
   376
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   377
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   378
.SH "コマンド行引数ファイル"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   379
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   380
90ce3da70b43 Initial load
duke
parents:
diff changeset
   381
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   382
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   383
javac のコマンド行を短くしたり簡潔にしたりするために、\f2javac\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。この方法を使うと、どのオペレーティングシステム上でも、任意の長さの javac コマンドを作成できます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   384
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   385
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   386
引数ファイルには、javac のオプションとソースファイル名を自由に組み合わせて記述できます。ファイル内の各引数は、スペースまたは改行で区切ります。ファイル名に空白が含まれている場合は、そのファイル名全体を二重引用符で囲みます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   387
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   388
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   389
引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。引数ファイル内のファイル名リストでは、ワイルドカード (*) は使用できません。たとえば、\f2*.java\fP とは指定できません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   390
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   391
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   392
javac を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。javac は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   393
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   394
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   395
例 \- 引数ファイルを 1 つ指定
90ce3da70b43 Initial load
duke
parents:
diff changeset
   396
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   397
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   398
\f2argfile\fP という名前の引数ファイルにすべての javac 引数を格納する場合は、次のように指定します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   399
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   400
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   401
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   402
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   403
  % \fP\f3javac @argfile\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   404
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   405
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   406
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   407
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   408
90ce3da70b43 Initial load
duke
parents:
diff changeset
   409
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   410
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   411
この引数ファイルには、次の例で示されている 2 つのファイルの内容を両方とも入れることができます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   412
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   413
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   414
例 \- 引数ファイルを 2 つ指定
90ce3da70b43 Initial load
duke
parents:
diff changeset
   415
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   416
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   417
たとえば、javac オプション用に 1 ファイル、ソースファイル名用に 1 ファイルというように、2 つの引数ファイルを作成することもできます。なお、このあとのリストでは、行の継続文字を使用していません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   418
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   419
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   420
以下の内容を含む \f2options\fP という名前のファイルを作成します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   421
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   422
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   423
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   424
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   425
     \-d classes
90ce3da70b43 Initial load
duke
parents:
diff changeset
   426
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   427
     \-g
90ce3da70b43 Initial load
duke
parents:
diff changeset
   428
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   429
     \-sourcepath /java/pubs/ws/1.3/src/share/classes
90ce3da70b43 Initial load
duke
parents:
diff changeset
   430
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   431
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   432
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   433
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   434
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   435
90ce3da70b43 Initial load
duke
parents:
diff changeset
   436
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   437
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   438
以下の内容を含む \f2classes\fP という名前のファイルを作成します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   439
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   440
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   441
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   442
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   443
     MyClass1.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   444
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   445
     MyClass2.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   446
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   447
     MyClass3.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   448
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   449
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   450
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   451
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   452
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   453
90ce3da70b43 Initial load
duke
parents:
diff changeset
   454
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   455
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   456
次のコマンドを使用して \f3javac\fP を実行します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   457
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   458
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   459
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   460
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   461
  % \fP\f3javac @options @classes\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   462
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   463
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   464
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   465
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   466
90ce3da70b43 Initial load
duke
parents:
diff changeset
   467
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   468
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   469
例 \- パス付きの引数ファイル
90ce3da70b43 Initial load
duke
parents:
diff changeset
   470
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   471
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   472
引数ファイルには、パスを指定できます。ただし、そのファイル内に指定されたファイル名は、現在の作業ディレクトリから見た相対パスになります。つまり、下の例の場合は、\f2path1\fP や \f2path2\fP から見た相対パスではありません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   473
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   474
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   475
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   476
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   477
  % \fP\f3javac @path1/options @path2/classes\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   478
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   479
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   480
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   481
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   482
90ce3da70b43 Initial load
duke
parents:
diff changeset
   483
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   484
.SH "注釈処理"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   485
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   486
90ce3da70b43 Initial load
duke
parents:
diff changeset
   487
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   488
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   489
\f3javac\fP が注釈処理を直接サポートしているため、独立した注釈処理ツールである \f3apt\fP を使用する必要がなくなりました。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   490
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   491
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   492
注釈処理の API は、\f2javax.annotation.processing\fP および \f2javax.lang.model\fP パッケージとそのサブパッケージ内に定義されています。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   493
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   494
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   495
注釈処理の概要
90ce3da70b43 Initial load
duke
parents:
diff changeset
   496
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   497
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   498
\f3\-proc:none\fP オプションによって注釈処理が無効化されないかぎり、コンパイラは使用可能なすべての注釈プロセッサを検索します。検索パスは \f3\-processorpath\fP オプションを使って指定できます。検索パスを指定しなかった場合は、ユーザークラスパスが使用されます。プロセッサの検索は、検索パス上の \f2META_INF/services/javax.annotation.processing.Processor\fP という名前のサービスプロバイダ構成ファイルに基づいて行われます。このようなファイルには、使用するすべての注釈プロセッサの名前を、1 行に 1 つずつ含めてください。また、別の方法として、\f3\-processor\fP オプションを使ってプロセッサを明示的に指定することもできます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   499
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   500
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   501
コンパイラは、コマンド行のソースファイルやクラスを走査することで、どのような注釈が存在しているかを確認し終わると、プロセッサに対して問い合わせを行い、それらのプロセッサがどの注釈を処理できるのかを確認します。一致するものが見つかった場合、そのプロセッサが呼び出されます。各プロセッサは、自身が処理する注釈を「要求」できます。 その場合、それらの注釈に対する別のプロセッサを見つける試みは行われません。すべての注釈が要求されてしまうと、コンパイラはそれ以上プロセッサの検索を行いません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   502
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   503
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   504
いずれかのプロセッサによって新しいソースファイルが生成されると、注釈処理の 2 回目のラウンドが開始されます。新しく生成されたすべてのソースファイルが走査され、前回と同様に注釈が処理されます。以前のラウンドで呼び出されたプロセッサはすべて、後続のどのラウンドでも呼び出されます。これが、新しいソースファイルが生成されなくなるまで続きます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   505
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   506
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   507
あるラウンドで新しいソースファイルが生成されなかった場合、注釈プロセッサがあと 1 回だけ呼び出され、必要な処理を実行する機会が与えられます。最後に、\f3\-proc:only\fP オプションが使用されないかぎり、コンパイラは、元のソースファイルと生成されたすべてのソースファイルをコンパイルします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   508
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   509
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   510
暗黙的にロードされたソースファイル
90ce3da70b43 Initial load
duke
parents:
diff changeset
   511
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   512
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   513
コンパイラは、一連のソースファイルをコンパイルする際に、別のソースファイルを暗黙的にロードしなければならない場合があります (「型の検索」を参照)。そのようなファイルは、現時点では注釈処理の対象になりません。デフォルトでは、注釈処理が実行され、かつ暗黙的にロードされたソースファイルが 1 つでもコンパイルされた場合にコンパイラは警告を発行します。この警告を抑制する方法については、\-implicit オプションを参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   514
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   515
.SH "型の検索"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   516
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   517
90ce3da70b43 Initial load
duke
parents:
diff changeset
   518
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   519
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   520
ソースファイルをコンパイルする場合、コマンド行で指定したソースファイルに型の定義が見つからないとき、コンパイラは通常、その型に関する情報を必要とします。コンパイラは、ソースファイルで使われているクラスまたはインタフェース、拡張されているクラスまたはインタフェース、あるいは実装されているクラスまたはインタフェースすべてについて、型の情報を必要とします。これには、ソースファイルで明示的には言及されていなくても、継承を通じて情報を提供するクラスとインタフェースも含まれます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   521
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   522
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   523
たとえば、\f3java.applet.Applet\fP をサブクラスにした場合、アプレットの祖先のクラス (\f3java.awt.Panel\fP、\f3java.awt.Container\fP、\f3java.awt.Component\fP、\f3java.lang.Object\fP) を使用していることになります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   524
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   525
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   526
コンパイラは、型の情報が必要になると、その型を定義しているソースファイルまたはクラスファイルを探します。まず、ブートストラップクラスと拡張機能クラスを検索し、続いてユーザークラスパス (デフォルトではカレントディレクトリ) を検索します。ユーザークラスパスは、\f3CLASSPATH\fP 環境変数を設定して定義するか、または \f3\-classpath\fP コマンド行オプションを使って設定します。詳細は、
90ce3da70b43 Initial load
duke
parents:
diff changeset
   527
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   528
「\f2Setting the Class Path\fP」
90ce3da70b43 Initial load
duke
parents:
diff changeset
   529
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   530
(http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath) を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   531
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   532
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   533
\-sourcepath オプションが指定されている場合、コンパイラは、指定されたパスからソースファイルを検索します。それ以外の場合は、ユーザークラスパスからクラスファイルとソースファイルの両方を検索します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   534
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   535
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   536
\f3\-bootclasspath\fP オプションと \f3\-extdirs\fP オプションを使うと、別のブートストラップクラスや拡張機能クラスを指定できます。このあとの「クロスコンパイルオプション」を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   537
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   538
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   539
型の検索に成功した場合の結果は、クラスファイル、ソースファイル、またはその両方である場合があります。両方が見つかった場合、そのどちらを使用すべきかを \-Xprefer オプションでコンパイラに指示できます。\f3newer\fP が指定された場合、コンパイラは 2 つのファイルの新しい方を使用します。\f3source\fP が指定された場合、コンパイラはソースファイルを使用します。デフォルトは \f3newer\fP です。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   540
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   541
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   542
型の検索自体によって、または \f3\-Xprefer\fP が設定された結果として必要な型のソースファイルが見つかった場合、コンパイラはそのソースファイルを読み取り、必要な情報を取得します。さらに、コンパイラはデフォルトで、そのソースファイルのコンパイルも行います。\-implicit オプションを使えばその動作を指定できます。\f3none\fP を指定した場合、そのソースファイルのクラスファイルは生成されません。\f3class\fP を指定した場合、そのソースファイルのクラスファイルが生成されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   543
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   544
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   545
コンパイラは、注釈処理の完了後に、ある型情報の必要性を認識する場合があります。その型情報があるソースファイル内に見つかり、かつ \f3\-implicit\fP オプションが指定されていない場合は、そのファイルが注釈処理の対象とならずにコンパイルされることを、コンパイラがユーザーに警告します。この警告を無効にするには、(そのファイルが注釈処理の対象となるように) そのファイルをコマンド行に指定するか、あるいはそのようなソースファイルに対してクラスファイルを生成すべきかどうかを \f3\-implicit\fP オプションを使って指定します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   546
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   547
.SH "プログラマティックインタフェース"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   548
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   549
90ce3da70b43 Initial load
duke
parents:
diff changeset
   550
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   551
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   552
\f3javac\fP は、\f2javax.tools\fP パッケージ内のクラスとインタフェースによって定義される新しい Java Compiler API をサポートします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   553
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   554
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   555
90ce3da70b43 Initial load
duke
parents:
diff changeset
   556
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   557
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   558
コマンド行から指定された引数を使ってコンパイルを実行するには、次のようなコードを使用します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   559
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   560
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   561
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   562
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   563
JavaCompiler javac = ToolProvider.getSystemJavaCompiler();
90ce3da70b43 Initial load
duke
parents:
diff changeset
   564
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   565
int rc = javac.run(null, null, null, args);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   566
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   567
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   568
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   569
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   570
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   571
90ce3da70b43 Initial load
duke
parents:
diff changeset
   572
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   573
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   574
この場合、標準出力ストリームにすべての診断メッセージが書き出され、コマンド行から呼び出された \f3javac\fP が返すのと同じ終了コードが返されます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   575
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   576
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   577
\f2javax.tools.JavaCompiler\fP インタフェース上のほかのメソッドを使えば、診断メッセージの処理やファイルの読み取り元/書き込み先の制御などを行えます。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   578
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   579
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   580
旧式のインタフェース
90ce3da70b43 Initial load
duke
parents:
diff changeset
   581
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   582
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   583
90ce3da70b43 Initial load
duke
parents:
diff changeset
   584
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   585
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   586
\f3注:\fP \  この API は、下位互換性を確保するためだけに残されています。新しいコードでは、必ず前述の Java Compiler API を使用してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   587
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   588
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   589
\f2com.sun.tools.javac.Main\fP クラスには、プログラム内からコンパイラを呼び出すための static メソッドが 2 つ用意されています。それらを次に示します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   590
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   591
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   592
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   593
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   594
public static int compile(String[] args);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   595
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   596
public static int compile(String[] args, PrintWriter out);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   597
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   598
      
90ce3da70b43 Initial load
duke
parents:
diff changeset
   599
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   600
\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   601
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   602
90ce3da70b43 Initial load
duke
parents:
diff changeset
   603
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   604
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   605
\f2args\fP パラメータは、javac プログラムに通常渡される任意のコマンド行引数を表しています。その概要については、前出の「形式」節を参照してください。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   606
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   607
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   608
\f2out\fP パラメータは、コンパイラの診断メッセージの出力先を示します。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   609
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   610
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   611
戻り値は、\f3javac\fP の終了値と同じです。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   612
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   613
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   614
名前が \f2com.sun.tools.javac\fP で始まるパッケージ (非公式には \f2com.sun.tools.javac\fP のサブパッケージとして知られる) に含まれる\f3その他の\fPクラスやメソッドは、どれも完全に内部用であり、いつでも変更される可能性があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   615
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   616
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   617
.SH "例"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   618
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   619
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   620
簡単なプログラムのコンパイル
90ce3da70b43 Initial load
duke
parents:
diff changeset
   621
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   622
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   623
90ce3da70b43 Initial load
duke
parents:
diff changeset
   624
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   625
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   626
\f2Hello.java\fP というソースファイルで、\f3greetings.Hello\fP という名前のクラスを定義しているとします。\f2greetings\fP ディレクトリは、ソースファイルとクラスファイルの両方があるパッケージディレクトリで、現在のディレクトリのすぐ下にあります。このため、この例では、デフォルトのユーザークラスパスを使用できます。また、\f3\-d\fP を使って別の出力先ディレクトリを指定する必要もありません。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   627
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   628
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   629
90ce3da70b43 Initial load
duke
parents:
diff changeset
   630
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   631
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   632
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   633
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   634
% \fP\f3ls\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   635
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   636
greetings/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   637
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   638
% \f3ls greetings\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   639
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   640
Hello.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   641
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   642
% \f3cat greetings/Hello.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   643
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   644
package greetings;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   645
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   646
90ce3da70b43 Initial load
duke
parents:
diff changeset
   647
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   648
public class Hello {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   649
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   650
    public static void main(String[] args) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   651
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   652
        for (int i=0; i < args.length; i++) {
90ce3da70b43 Initial load
duke
parents:
diff changeset
   653
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   654
            System.out.println("Hello " + args[i]);
90ce3da70b43 Initial load
duke
parents:
diff changeset
   655
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   656
        }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   657
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   658
    }
90ce3da70b43 Initial load
duke
parents:
diff changeset
   659
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   660
}
90ce3da70b43 Initial load
duke
parents:
diff changeset
   661
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   662
% \f3javac greetings/Hello.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   663
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   664
% \f3ls greetings\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   665
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   666
Hello.class   Hello.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   667
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   668
% \f3java greetings.Hello World Universe Everyone\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   669
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   670
Hello World
90ce3da70b43 Initial load
duke
parents:
diff changeset
   671
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   672
Hello Universe
90ce3da70b43 Initial load
duke
parents:
diff changeset
   673
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   674
Hello Everyone
90ce3da70b43 Initial load
duke
parents:
diff changeset
   675
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   676
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   677
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   678
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   679
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   680
90ce3da70b43 Initial load
duke
parents:
diff changeset
   681
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   682
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   683
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   684
複数のソースファイルのコンパイル
90ce3da70b43 Initial load
duke
parents:
diff changeset
   685
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   686
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   687
90ce3da70b43 Initial load
duke
parents:
diff changeset
   688
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   689
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   690
次の例では、パッケージ \f2greetings\fP 内のすべてのソースファイルをコンパイルします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   691
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   692
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   693
90ce3da70b43 Initial load
duke
parents:
diff changeset
   694
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   695
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   696
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   697
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   698
% \fP\f3ls\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   699
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   700
greetings/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   701
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   702
% \f3ls greetings\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   703
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   704
Aloha.java         GutenTag.java      Hello.java         Hi.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   705
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   706
% \f3javac greetings/*.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   707
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   708
% \f3ls greetings\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   709
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   710
Aloha.class         GutenTag.class      Hello.class         Hi.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   711
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   712
Aloha.java          GutenTag.java       Hello.java          Hi.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   713
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   714
90ce3da70b43 Initial load
duke
parents:
diff changeset
   715
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   716
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   717
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   718
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   719
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   720
90ce3da70b43 Initial load
duke
parents:
diff changeset
   721
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   722
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   723
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   724
ユーザークラスパスの指定
90ce3da70b43 Initial load
duke
parents:
diff changeset
   725
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   726
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   727
90ce3da70b43 Initial load
duke
parents:
diff changeset
   728
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   729
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   730
上の例のソースファイルのうち 1 つを変更し、変更後のファイルを再コンパイルするとします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   731
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   732
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   733
90ce3da70b43 Initial load
duke
parents:
diff changeset
   734
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   735
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   736
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   737
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   738
% \fP\f3pwd\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   739
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   740
/examples
90ce3da70b43 Initial load
duke
parents:
diff changeset
   741
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   742
% \f3javac greetings/Hi.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   743
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   744
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   745
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   746
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   747
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   748
90ce3da70b43 Initial load
duke
parents:
diff changeset
   749
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   750
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   751
\f2greetings.Hi\fP は、\f2greetings\fP パッケージ内のほかのクラスを参照しているため、コンパイラはこれらのクラスを探す必要があります。上の例では、デフォルトのユーザークラスパスが、パッケージディレクトリを含むディレクトリと同じであるため、コンパイルは正常に実行されます。ただし、現在どのディレクトリにいるかに関係なく、このファイルを再コンパイルする場合は、ユーザークラスパスに \f2/examples\fP を追加する必要があります。ユーザークラスパスにエントリを追加するには、\f3CLASSPATH\fP を設定する方法もありますが、ここでは \f3\-classpath\fP オプションを使うことにします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   752
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   753
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   754
90ce3da70b43 Initial load
duke
parents:
diff changeset
   755
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   756
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   757
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   758
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   759
% \fP\f3javac \-classpath /examples /examples/greetings/Hi.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   760
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   761
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   762
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   763
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   764
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   765
90ce3da70b43 Initial load
duke
parents:
diff changeset
   766
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   767
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   768
再度 \f2greetings.Hi\fp を変更してバナーユーティリティを使うようにした場合は、このバナーユーティリティもユーザークラスパスを通じてアクセスできるようになっている必要があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   769
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   770
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   771
90ce3da70b43 Initial load
duke
parents:
diff changeset
   772
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   773
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   774
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   775
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   776
% \fP\f3javac \-classpath /examples:/lib/Banners.jar \\ 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   777
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   778
            /examples/greetings/Hi.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   779
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   780
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   781
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   782
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   783
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   784
90ce3da70b43 Initial load
duke
parents:
diff changeset
   785
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   786
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   787
\f2greetings\fP 内のクラスを実行するには、\f2greetings\fP と、\f2greetings\fP が使うクラスの両方にアクセスできる必要があります。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   788
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   789
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   790
90ce3da70b43 Initial load
duke
parents:
diff changeset
   791
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   792
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   793
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   794
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   795
% \fP\f3java \-classpath /examples:/lib/Banners.jar greetings.Hi\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   796
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   797
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   798
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   799
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   800
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   801
90ce3da70b43 Initial load
duke
parents:
diff changeset
   802
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   803
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   804
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   805
ソースファイルとクラスファイルの分離
90ce3da70b43 Initial load
duke
parents:
diff changeset
   806
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   807
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   808
90ce3da70b43 Initial load
duke
parents:
diff changeset
   809
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   810
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   811
特に大規模プロジェクトの場合は、ソースファイルとクラスファイルを別々のディレクトリに置くと便利なことがあります。クラスファイルの出力先を別に指定するには、\f3\-d\fP を使います。ソースファイルはユーザークラスパスにはないので、\f3\-sourcepath\fP を使って、コンパイラがソースファイルを見つけることができるようにします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   812
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   813
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   814
90ce3da70b43 Initial load
duke
parents:
diff changeset
   815
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   816
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   817
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   818
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   819
% \fP\f3ls\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   820
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   821
classes/  lib/      src/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   822
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   823
% \f3ls src\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   824
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   825
farewells/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   826
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   827
% \f3ls src/farewells\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   828
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   829
Base.java      GoodBye.java
90ce3da70b43 Initial load
duke
parents:
diff changeset
   830
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   831
% \f3ls lib\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   832
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   833
Banners.jar
90ce3da70b43 Initial load
duke
parents:
diff changeset
   834
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   835
% \f3ls classes\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   836
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   837
% \f3javac \-sourcepath src \-classpath classes:lib/Banners.jar \\ 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   838
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   839
            src/farewells/GoodBye.java \-d classes\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   840
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   841
% \f3ls classes\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   842
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   843
farewells/
90ce3da70b43 Initial load
duke
parents:
diff changeset
   844
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   845
% \f3ls classes/farewells\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   846
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   847
Base.class      GoodBye.class
90ce3da70b43 Initial load
duke
parents:
diff changeset
   848
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   849
90ce3da70b43 Initial load
duke
parents:
diff changeset
   850
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   851
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   852
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   853
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   854
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   855
90ce3da70b43 Initial load
duke
parents:
diff changeset
   856
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   857
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   858
\f3注:\fP \  コマンド行では \f2src/farewells/Base.java\fP を指定していませんが、このファイルもコンパイラによってコンパイルされています。自動コンパイルを監視するには、\f3\-verbose\fP オプションを使います。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   859
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   860
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   861
.SS 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   862
クロスコンパイルの例
90ce3da70b43 Initial load
duke
parents:
diff changeset
   863
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   864
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   865
90ce3da70b43 Initial load
duke
parents:
diff changeset
   866
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   867
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   868
ここでは、javac を使って、1.5 VM 上で実行するコードをコンパイルします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   869
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   870
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   871
90ce3da70b43 Initial load
duke
parents:
diff changeset
   872
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   873
.nf
90ce3da70b43 Initial load
duke
parents:
diff changeset
   874
\f3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   875
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   876
% \fP\f3javac \-target 1.5 \-bootclasspath jdk1.5.0/lib/rt.jar \\ 
90ce3da70b43 Initial load
duke
parents:
diff changeset
   877
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   878
            \-extdirs "" OldCode.java\fP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   879
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   880
        
90ce3da70b43 Initial load
duke
parents:
diff changeset
   881
.fl
90ce3da70b43 Initial load
duke
parents:
diff changeset
   882
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   883
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   884
90ce3da70b43 Initial load
duke
parents:
diff changeset
   885
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   886
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   887
\f3\-target 1.5\fP オプションにより、1.5 VM と互換性のあるクラスファイルが生成されます。デフォルトでは、\f3javac\fP は JDK 6 用にコンパイルします。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   888
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   889
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   890
Java プラットフォーム JDK の \f3javac\fP は、デフォルトではそれ自身のブートストラップクラスに対してコンパイルを行うので、代わりに JDK 1.5 のブートストラップクラスに対してコンパイルを行うように \f3javac\fP を設定する必要があります。これは、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使って指定します。この指定を行わないと、1.5 VM には存在しない Java プラットフォーム API に対応したコンパイルが行われるため、プログラムの実行時に失敗するでしょう。
90ce3da70b43 Initial load
duke
parents:
diff changeset
   891
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   892
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   893
.SH "関連項目"
90ce3da70b43 Initial load
duke
parents:
diff changeset
   894
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   895
90ce3da70b43 Initial load
duke
parents:
diff changeset
   896
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   897
.RS 3
90ce3da70b43 Initial load
duke
parents:
diff changeset
   898
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   899
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   900
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   901
「\f2The javac Guide\fP」
90ce3da70b43 Initial load
duke
parents:
diff changeset
   902
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   903
(http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   904
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   905
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   906
java(1) \- Java アプリケーション起動プログラム
90ce3da70b43 Initial load
duke
parents:
diff changeset
   907
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   908
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   909
jdb(1) \- Java デバッガ
90ce3da70b43 Initial load
duke
parents:
diff changeset
   910
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   911
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   912
javah(1) \- C 言語のヘッダとスタブファイルのジェネレータ
90ce3da70b43 Initial load
duke
parents:
diff changeset
   913
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   914
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   915
javap(1) \- Java クラスファイル逆アセンブラ
90ce3da70b43 Initial load
duke
parents:
diff changeset
   916
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   917
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   918
javadoc(1) \- Java API ドキュメントジェネレータ
90ce3da70b43 Initial load
duke
parents:
diff changeset
   919
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   920
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   921
jar(1) \- JAR アーカイブツール
90ce3da70b43 Initial load
duke
parents:
diff changeset
   922
.TP 2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   923
o
90ce3da70b43 Initial load
duke
parents:
diff changeset
   924
.na
90ce3da70b43 Initial load
duke
parents:
diff changeset
   925
「\f2The Java Extensions Framework\fP」
90ce3da70b43 Initial load
duke
parents:
diff changeset
   926
.fi
90ce3da70b43 Initial load
duke
parents:
diff changeset
   927
(http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   928
.RE
90ce3da70b43 Initial load
duke
parents:
diff changeset
   929
90ce3da70b43 Initial load
duke
parents:
diff changeset
   930
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   931
90ce3da70b43 Initial load
duke
parents:
diff changeset
   932
.LP
90ce3da70b43 Initial load
duke
parents:
diff changeset
   933