モジュールjdk.compiler
com.sun.source.*
パッケージはコンパイラ・ツリーAPIを提供: javac、javadocおよび関連ツールで使用されるJavaソース・コードおよびドキュメントのコメントを表す抽象ツリー(ASTs)にアクセスするためのAPI。
javac
このモジュールは、ToolProvider
およびTool
サービス・プロバイダ・インタフェース(SPI)を使用してjavacへのコマンドライン・アクセスと同等の機能を提供し、JavaCompiler
SPIを介してより柔軟なアクセスを提供します。
ツールのインスタンスは、ToolProvider.findFirst
または"javac"
という名前の「サービス・ローダー」を呼び出すことによって取得できます。
さらに、JavaCompilerから取得されたJavaCompiler.CompilationTask
のインスタンスは、Abstract Syntax Tree
(AST)のようなjavacの低レベルの側面にアクセスするためにJavacTask
にダウン・キャストすることができます。
このモジュールは、FileSystemProvider
APIを使用してファイル・システム・プロバイダを特定します。 特に、これは、コンパイラがJARファイルを読み取れるようにするには、jdk.zipfs
モジュールのようなjarファイル・システム・プロバイダを使用可能にする必要があることを意味します。
オプションおよび環境変数
javacでサポートされているオプションおよび環境変数の完全なセットは、「javacツール・ガイド」にあります。 ただし、コンパイラがAPIを介して呼び出される場合は、いくつかの制限があります。-J
オプションはサポートされていません。 APIの呼び出しに使用されるVMでは、必要なVMオプションを設定する必要があります。IllegalArgumentException
は、JavaCompiler
APIを介してツールを呼び出すときにオプションが使用された場合、スローされます。ToolProvider
または従来のMain
APIを介してjavacを呼び出すときにオプションが使用された場合、エラーが報告されます。"クラスパス・ワイルドカード"機能はサポートされていません。 この機能はネイティブランチャでのみサポートされます。 APIを介してツールを起動する場合、必要なすべてのjarファイルを
--class-path
オプションまたはCLASSPATH
環境変数に直接含める必要があります。 APIを介してツールを呼び出すと、クラス・パスのすべてのコンポーネントが文字どおりに取得され、一致するディレクトリまたはファイルがない場合は無視されます。-Xlint:paths
オプションを使用すると、不足しているコンポーネントに関する警告を生成できます。
JavaCompiler
インタフェースを介してコンパイラを起動する場合、次の制限が適用されます。
引数ファイル(so-called @-files)はサポートされていません。 このようなファイルの内容は、このAPIを使用してツールを起動するときに提供されるオプションのリストに直接含める必要があります。 このAPIを介してツールを起動するときにオプションが使用された場合、
IllegalArgumentException
がスローされます。環境変数
JDK_JAVAC_OPTIONS
はサポートされていません。 環境変数で定義されたオプションは、APIの起動時に指定されたオプションのリストに直接含める必要があります。環境変数内の値は無視されます。情報 (
--help
,--help-extended
,--version
や--full-version
など)を取得するためにのみ使用されるオプションはサポートされていません。 このAPIを介してツールを呼び出すときにこれらのオプションのいずれかが使用された場合、IllegalArgumentException
がスローされます。- パス関連のオプションは、
JavaCompiler.getTask(java.io.Writer, javax.tools.JavaFileManager, javax.tools.DiagnosticListener<? super javax.tools.JavaFileObject>, java.lang.Iterable<java.lang.String>, java.lang.Iterable<java.lang.String>, java.lang.Iterable<? extends javax.tools.JavaFileObject>)
の呼び出し時に使用されるファイル・マネージャによって異なります。 "standard"オプション(--class-path
、--module-path
など)は、デフォルトのファイル・マネージャまたはそこから導出されたファイル・マネージャを使用する場合に使用できます。 異なるファイル・マネージャを使用するときは、これらのオプションを使用できない可能性があり、異なるオプションを使用できる場合があります。 このAPIを介してツールを呼び出すときにツールまたはファイル・マネージャに不明なオプションが使用された場合、IllegalArgumentException
がスローされます。
CLASSPATH
環境変数は、APIを介してコンパイラを起動する際に有効ですが、使用することはお薦めしません。 VMを起動したあとは環境変数を設定解除できないため、コンパイラを呼び出すために使用されるVMを起動するときに環境変数が設定されないようにすることをお勧めします。 ただし、値が設定されている場合は、コンパイラを呼び出すときに--class-path
オプションを使用するか、JavaCompiler
インタフェースを介してコンパイラを呼び出すときにファイル・マネージャでStandardLocation.CLASS_PATH
を設定することによって、そのような値をオーバーライドできます。
SuppressWarnings
JLS 9.6.4.5では、Javaコンパイラによって生成される可能性のある警告を抑制するために使用できる多数の文字列を指定します。 また、javacは他の種類の警告を抑制するために使用できる他の文字列もサポートしています。 次の表に、@SuppressWarnings
で使用できるすべての文字列を示します。
String | 警告の抑制 ... |
---|---|
auxiliaryclass | ソース・ファイルで非表示になり、他のファイルから使用される補助クラス |
cast | 不要なキャストの使用 |
classfile | クラス・ファイルの内容に関連する問題 |
deprecation | 非推奨アイテムの使用 |
dep-ann | ドキュメントのコメントで非推奨としてマークされているが、@Deprecated 注釈を使用していないアイテム
|
divzero | 定数整数による除算0
|
empty | if の後の空の文
|
exports | モジュールのエクスポートに関する問題 |
fallthrough | switch 文の1つのケースから次のケースへのフォール・スルー
|
finally | 通常終了しないfinally 句
|
lossy-conversions | 複合代入での可逆変換 |
missing-explicit-ctor | エクスポートされたパッケージのpublicクラスおよびprotectedクラスに明示的なコンストラクタがありません |
module | モジュール・システム関連の問題 |
opens | モジュール・オープンに関する問題 |
overloads | メソッドのオーバーロードに関する問題 |
overrides | メソッドのオーバーライドに関する問題 |
path | コマンドラインのパス要素が無効です |
preview | プレビュー言語機能の使用 |
rawtypes | rawタイプの使用 |
removal | 削除マークが付いたAPIの使用 |
requires-automatic | requires 句での自動モジュールの使用
|
requires-transitive-automatic | requires transitive の自動モジュール
|
serial | serialVersionUID フィールドを持たないSerializable クラス、またはSerializable クラスおよびExternalizable インタフェース内の他の疑わしい宣言
|
static | インスタンスを使用した静的メンバーへのアクセス |
strictfp | strictfp 修飾子の使用が不要
|
synchronization | 値ベースのクラスのインスタンスでの同期試行 |
text-blocks | テキスト・ブロックのインデントに矛盾する空白文字があります |
try | try ブロックの使用に関する問題(that is, try-with-resources)
|
unchecked | チェックされていない演算 |
varargs | 危険でないvarargメソッド |
doclint:accessibility | ドキュメントのコメントにあるアクセシビリティの問題 |
doclint:all | ドキュメントのコメントに含まれるすべての問題 |
doclint:html | ドキュメントのコメントにHTMLの問題が見つかりました |
doclint:missing | ドキュメントのコメントにアイテムがありません |
doclint:reference | ドキュメントのコメントで見つかった参照の問題 |
doclint:syntax | ドキュメントのコメントに構文の問題が見つかりました |
- モジュール・グラフ:
- ツール・ガイド:
- javac
- 導入されたバージョン:
- 9
-
パッケージ
エクスポートパッケージ説明ドキュメンテーション・コメントを抽象構文ツリー(AST)として表すためのインタフェースを提供します。ソース・コードを抽象構文ツリー(Abstract Syntax Tree、AST)として表すためのインタフェースを提供します。抽象構文ツリー(Abstract Syntax Tree、AST)の操作のためのユーティリティを提供します。このパッケージは、javacツールのレガシー・エントリ・ポイントを提供します。間接的エクスポート -
モジュール
必須 -
サービス
提供型説明プログラムからJavaプログラミング言語コンパイラを起動するインタフェースです。プログラムから呼出し可能なツールの共通インタフェースです。ToolProvider.findFirst("javac")
を使用して、javac
ツールへのコマンドライン・アクセスに相当するToolProvider
のインスタンスを取得します。使用