Java コンパイラー

この設定ページでは、Java ソース・コードのコンパイル、ビルド、および検査に関連するさまざまな設定を構成することができます。

Java コンパイラーの設定は、以下のセクションに分かれています。

一般

JDK 準拠

オプション

説明

デフォルト

コンパイラー準拠レベル

コンパイラー準拠レベルを指定します。

1.4

デフォルトの準拠設定の使用

使用可能にすると、コンパイラー準拠レベルのデフォルト準拠設定が適用されます。

オン

生成されたクラス・ファイルの互換性

生成されたクラス・ファイルの互換性を指定します。

1.2

ソース互換性

受け入れ済みソース・コードの互換性を指定します。

1.3

「assert」と呼ばれる識別子を許可しない

使用可能にすると、「assert」 (J2SE 1.4 では予約済みキーワード) が ID として使用されたときにコンパイラーはエラーまたは警告を出します。

警告

「enum」と呼ばれる識別子を許可しない

使用可能にすると、「enum」 (J2SE 5.0 では予約済みキーワード) が ID として使用されたときにコンパイラーはエラーまたは警告を出します。

警告

クラス・ファイル生成

生成されたクラス・ファイルに変数属性を追加

使用可能にすると、変数属性がクラス・ファイルに追加されます。これを使用すると、ローカル変数名がデバッガー (の変数が確実に定義されている場所) に表示されます。 このため、結果の .class ファイルはより大きいものになります。

オン

生成されたクラス・ファイルに行番号属性を追加

使用可能にすると、行番号情報がクラス・ファイルに追加されます。これを使用すると、デバッガーでソース・コードが強調表示されます。

オン

生成されたクラス・ファイルにソース・ファイル名を追加

使用可能にすると、ソース・ファイル名がクラス・ファイルに追加されます。これを使用すると、デバッガーが対応するソース・コードを表示します。

オン

未使用のローカル変数を保存

使用可能にすると、未使用の (読み取られていない) ローカル変数はクラス・ファイルからはずされません。クラス・ファイルをはずすと、デバッグが変更される可能性があります。

オン

finally ブロックのインライン化

これを使用可能にすると、生成されるクラス・ファイル内の finally ブロックがインライン化されます。これは、パフォーマンスに良い影響を及ぼしますが、クラス・ファイルが大きくなる場合もあります。

オフ

ビルド

一般

オプション

説明

デフォルト

コンパイル単位で報告される問題の最大数

1 つのコンパイル単位に対して報告される必要のある問題数を指定します。

100

ソース・フォルダーで除外パターンの使用を可能にする

使用不可にすると、プロジェクト・クラスパスのエントリーは除外パターンと関連付けることができなくなります。

オン

ソース・フォルダーに複数の出力ロケーションの使用を可能にする

使用不可にすると、複数の出力ロケーションの使用を回避するため、プロジェクト・クラスパスのエントリーは特定の出力ロケーションと関連付けることができなくなります。

オン

ビルド・パス問題

ビルド・パス・エラーでビルドを中断

クラスパスが無効な場合、ビルダーを中断に切り替えることができます。

オン

不完全なビルド・パス

クラスパスのエントリーが存在しない、適切でない、または不可視であるとき (例えば、参照プロジェクトが閉じているとき) に報告される問題の重大度を示します。

エラー

循環依存関係

プロジェクトがサイクルに組み込まれているときに報告される問題の重大度を指示します。

エラー

互換性のない必須バイナリー

プロジェクトが非互換バイナリーを必要とするときに報告される問題の重大度を指示します。

無視

出力フォルダー

重複リソース

複数のリソースのオカレンスが出力ロケーションにコピーされたときに報告される問題の重大度を示します。

警告

プロジェクトのクリーニング時に出力フォルダーを消し込む

フル・ビルド操作の実行時に Java ビルダーが出力フォルダーをクリーンできるかどうかを示します。

オン

フィルターするリソース

出力フォルダーにコピーされないファイル・パターンのコンマで区切られたリスト。 

''

エラー/警告

コード・スタイル

オプション

説明

デフォルト

静的メンバーへの非静的アクセス

使用可能にすると、コンパイラーは、static フィールドまたはメソッドが式の受取側でアクセスされるときにエラーまたは警告を出します。 静的メンバーの参照は、型名で限定されなければなりません。

警告

静的メンバーへの間接アクセス

使用可能にすると、static フィールドまたはメソッドが間接的にアクセスされた場合に、 コンパイラーがエラーまたは警告を出します。 インターフェースの static フィールドは、宣言する型名で修飾される必要があります。

警告

インスタンス・フィールドへの限定されていないアクセス

使用可能にすると、修飾されていない (例えば 'this' がない) フィールド・アクセスを検出した場合に、 コンパイラーがエラーまたは警告を出します。

無視

文書化されていない空のブロック

使用可能にすると、コンパイラーは、説明コメントがない空のブロック・ステートメントを検出した場合にエラーまたは警告を出します。

無視

エンクロージング型のアクセス不能メンバーへのアクセス

使用可能にすると、コンパイラーはエンクロージング型のアクセス不能メンバーへのアクセスをエミュレートするとき、エラーまたは警告を出します。 このようなアクセスは、パフォーマンスに影響を与える可能性があります。

無視

コンストラクター名を持つメソッド

一般に、メソッドにコンストラクター名を使用して名前を付けると、プログラミングのスタイルが不良であると見なされます。 このオプションを使用可能にすると、コンパイラーはこのようなシナリオをエラーまたは警告として通知します。

警告

非外部化ストリングの使用

使用可能にすると、コンパイラーは、外部化されていない文字列リテラル (つまり、//$NON-NLS-<n>$ のタグがないもの) に対して、エラーまたは警告を出します。 

無視

潜在的なプログラミングの問題

serialVersionUID なしのシリアライズ可能クラス

使用可能にすると、コンパイラーは、 'java.io.Serializable' をインプリメントする型に serialVersionUID フィールドが含まれていない場合に、エラーまたは警告を出します。

警告

効果のない代入 (例:「x = x」)

使用可能にすると、コンパイラーは、代入に効果がないとき (例:「x = x」) にエラーまたは警告を出します。

警告

考えられる偶発的なブール割り当て (例:「if (a = b)」)

使用可能にすると、コンパイラーは、偶発的なブール割り当ての可能性を検出した場合 (例:「if (a =b)」) に、エラーまたは警告を出します。

警告

'finally' が正常に完了しない

使用可能にすると、'finally' ステートメントが正常に完了しない (例えば return 文が含まれている) 場合に、コンパイラーがエラーまたは警告を出します。

警告

空のステートメント

使用可能にすると、コンパイラーは、空のステートメント (例えば、不要なセミコロンなど) を検出した場合にエラーまたは警告を出します。

無視

ストリング連結での文字配列の使用

使用可能にすると、char[] 式が次のストリング連結で使用されたときに、コンパイラーはエラーまたは警告を出します。

"hello" + new char[]{'w','o','r','l','d'}

警告

隠れた catch ブロック

ローカル側の try ステートメントに対して、いくつかの catch ブロックが以下のように他の catch ブロックを隠す場合があります。

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}.

このオプションを使用可能にすると、コンパイラーは、チェックされた例外に対応する隠れた catch ブロックについてエラーまたは警告を出します。

警告

名前のシャドーイングおよび競合

フィールド宣言が他のフィールドまたは変数を隠蔽

このオプションを使用可能にすると、コンパイラーは、フィールド宣言によって他の継承フィールドが隠蔽される場合にエラーまたは警告を出します。

無視

ローカル変数宣言が他のフィールドまたは変数を隠蔽

このオプションを使用可能にすると、コンパイラーは、ローカル変数宣言によって他のフィールドまたは変数が隠蔽される場合にエラーまたは警告を出します。

無視

コンストラクターまたは Setter メソッド・パラメーターを組み込む

このオプションを使用可能にすると、コンパイラーはさらに、コンストラクターまたは setter メソッド・パラメーターによって他のフィールドまたは変数が隠蔽される場合に、エラーまたは警告を出します。

オフ

型パラメーターが別の型を隠蔽

このオプションを使用可能にすると、コンパイラーは、例えばインナー・クラスの型パラメーターによって他の外部型が隠蔽される場合にエラーまたは警告を出します。

警告

メソッドがオーバーライドされてもパッケージは不可視

パッケージ・デフォルト・メソッドは別のパッケージで可視ではないため、これをオーバーライドできません。 このオプションを使用可能にすると、コンパイラーはこのようなシナリオをエラーまたは警告として通知します。

警告

インターフェース・メソッドと保護「Object」メソッドの競合

使用可能にすると、継承されない Object メソッドと互換性のないメソッドをインターフェースが定義したときに、コンパイラーはエラーまたは警告を出します。この競合が解決するまで、次のようなインターフェースはインプリメントできません。

interface I {
   int clone();
}

警告

名前のシャドーイングおよび競合

使用すべきではない API

使用可能にすると、コンパイラーは使用すべきでない API の使用をエラーまたは警告として通知します。

警告

使用すべきでないコード内での使用すべきでない API の使用を知らせる

使用可能にすると、コンパイラーは使用すべきでないコード内の使用すべきでない API の使用を通知します。 この問題の重大度は、「使用すべきではない API」オプションで制御されます。

オフ

使用すべきでないメソッドのオーバーライドまたは実装を知らせる

使用可能にすると、コンパイラーは、使用すべきでないメソッドのオーバーライドまたは実装を知らせます。この問題の重大度は、「使用すべきではない API」オプションで制御されます。

オフ

禁止された参照 (アクセス規則)

使用可能にすると、コンパイラーは、アクセス規則で指定されている禁止済みの参照を知らせます。

エラー

推奨されていない参照 (アクセス規則)

使用可能にすると、コンパイラーは、アクセス規則で指定されている推奨されない参照を知らせます。

警告

不要なコード

ローカル変数が読み取られない

使用可能にすると、コンパイラーは、ローカル変数が宣言されたがその範囲内で全く使用されない場合にエラーまたは警告を出します。

警告

パラメーターが読み取られない

使用可能にすると、コンパイラーは、パラメーターが宣言されたがその範囲内で全く使用されない場合にエラーまたは警告を出します。

無視

オーバーライドおよび実装メソッドを検査

使用可能にすると、コンパイラーはさらに、メソッドのオーバーライドまたは実装時にパラメーターが宣言されたがその範囲内で全く使用されない場合にエラーまたは警告を出します。

オフ

未使用のインポート

このオプションを使用可能にすると、コンパイラーは未使用インポート参照についてエラーまたは警告を出します。

警告

未使用のローカルまたは private メンバー

使用可能にすると、コンパイラーは、ローカルまたは private メンバーが宣言されたが同一ユニット内で全く使用されない場合にエラーまたは警告を出します。

警告

不要な else ステートメント

使用可能にすると、コンパイラーは、不要な else ステートメント (例えば、if (condition) return; else doSomething(); など) を検出した場合にエラーまたは警告を出します。

無視

不要なキャストまたは 'instanceof' 操作

使用可能にすると、コンパイラーは、不要なキャストまたは 'instanceof' 操作 (例えば、if (object instanceof Object) return; など) を検出した場合にエラーまたは警告を出します。

無視

スローされた検査済み例外の不要な宣言

使用可能にすると、コンパイラーは、スローされた例外の不要な宣言を検出した場合にエラーまたは警告を出します。

無視

オーバーライドおよび実装メソッドを検査

使用可能にすると、コンパイラーはさらに、オーバーライドまたは実装メソッド内でスローされた例外の不要な宣言を検出した場合に、エラーまたは警告を出します。

オフ

J2SE 5.0 オプション

未検査の総称型操作

使用可能にすると、コンパイラーは、未検査の総称型操作を検出した場合にエラーまたは警告を出します。

警告

バインドされた final 型を使用して宣言される総称型パラメーター

使用可能にすると、コンパイラーは、final 型とともにバインドされた型を検出した場合にエラーまたは警告を出します。

警告

可変引数に対する不正確な型の一致

使用可能にすると、コンパイラーは、可変引数に対する不正確な型の一致を検出した場合にエラーまたは警告を出します。

警告

ボクシングおよびアンボクシング変換

使用可能にすると、コンパイラーは、ボクシングまたはアンボクシングへの変換を検出した場合にエラーまたは警告を出します。オートボクシングは、パフォーマンスに悪い影響を及ぼす場合があります。

無視

'@Override' 注釈の欠落

使用可能にすると、コンパイラーは、メソッドが他の実装済みメソッドをオーバーライドしようとしているが、'@Override' 注釈が欠落していることを検出した場合にエラーまたは警告を出します。

無視

'@Deprecated' 注釈の欠落

使用可能にすると、コンパイラーは、追加の '@Deprecated' 注釈を持たない、使用すべきでない型を検出した場合にエラーまたは警告を出します。

無視

注釈をスーパー・インターフェースとして使用

使用可能にすると、コンパイラーは、注釈を実装する型を検出した場合にエラーまたは警告を出します。これは可能ですが、不適切な動作とみなされます。

警告

すべての列挙定数が 'switch' でカバーされていない

使用可能にすると、コンパイラーは、参照される列挙の各列挙定数に対する case ステートメントを含まない切り替えステートメントを検出した場合に、エラーまたは警告を出します。

無視

'@SuppressWarnings' の処理されない警告トークン

使用可能にすると、コンパイラーは、'@SuppressWarnings' 注釈内に処理されない警告トークンを検出した場合にエラーまたは警告を出します。

警告

'@SuppressWarnings' 注釈の使用可能化

使用可能にすると、コンパイラーは、'@SuppressWarnings' 注釈を処理します。

オン

関連概念

Java ビルダー

関連タスク

Java プログラムのビルド
ビルド・パスの操作
JRE の操作

関連参照

クラスパス変数の設定
Java のビルド・パス・プロパティー