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