FAQ (よく尋ねられる質問): JDT

ワークベンチでは、 組み込まれている Java コンパイラー以外の Java コンパイラー (たとえば、javac) を使用することはできるでしょうか。

いいえ。JDT は、完全自動インクリメンタル・コンパイル、コードの断片の評価、コード・アシスト、型階層、 およびホット・コード置換を含む、多数の高度なフィーチャーを備えています。 これらのフィーチャーは、ワークベンチの Java コンパイラー (JDT のインクリメンタル・プロジェクト・ビルダーの不可欠なパーツ) が 持つ特別なサポートを必要とします。このようなサポートは標準の Java コンパイラーでは得ることができません。

Java パッケージはどこから生成されるのですか。

プロジェクトにはファイルとフォルダーしか含まれていません。Java パッケージという概念は、 Java プロジェクトのクラスパスによって導入されたものです (UI の、「パッケージ (Package)」ビューでは、パッケージはクラスパスによって定義されているとなっています)。 ヒント: パッケージ構造が予想していたものではない場合、クラスパスをチェックしてください。 Java の検索インフラストラクチャーは、クラスパス上の Java エレメントの宣言とそこからの参照しか検索しません。

内部の JAR ライブラリー・ファイルと外部の JAR ライブラリー・ファイルはどのような場合に使用するのでしょうか。

内部リソースは、ワークベンチ内のあるプロジェクトに常駐しているため、ワークベンチによって管理されます。 他のリソースと同様、これらのリソースもワークベンチによってバージョン管理されます。 外部リソースは、ワークベンチの一部ではないため、参照によってのみ使用することができます。 たとえば、JRE は多くの場合外部にあり、非常に大きなものなので、それを VCM システムに関連付ける必要はありません。

Java プロジェクト内のソース・フォルダーはどのような場合に使用するのでしょうか。

各 Java プロジェクトは、 その Java ソース・ファイルをプロジェクトのクラスパス上の 1 つまたは複数のソース・タイプ項目を介して見つけます。 ソース・フォルダーは、大きなプロジェクトのパッケージを使いやすいグループに編成する場合、 またはソース・コードを同じプロジェクト内の別のファイルから分離する場合に使用します。 また、ビルド・パスに置く必要のないファイル (たとえば、ドキュメンテーション) がある場合にもソース・フォルダーを使用します。

ソースの添付とは何でしょうか。どのようにして定義するのでしょうか。

ライブラリーは、バイナリー・クラス・ファイル (おそらくは他のリソースも) を含む JAR ファイルとして保管されます。 これらのバイナリー・クラス・ファイルは、パッケージ、クラス、メソッド、およびフィールドのシグニチャー情報を提供します。 この情報はコンパイルと実行には十分なものですが、 そこに含まれているオリジナルのソース・コードに関する情報はわずかなものです。 バイナリー・ライブラリーのブラウズとデバッグをさらに容易にするために、 対応するソースの JAR (または Zip) ファイルをバイナリーの JAR ファイルに関連付けるためのメカニズムがあります。

関連トピック:

  • 「「Java 設定 (Java Settings)」ページ」を参照
  • 「ライブラリー・タブ」を参照
  • なぜすべてのリソースが出力フォルダー (たとえば bin) に複製されるのですか。

    Java プロジェクトがソース・フォルダーを使用している場合は、 プロジェクト内のソース・ファイルのコンパイル中に Java コンパイラーは、Java 以外のリソースも 出力フォルダーにコピーして、実行プログラムのクラスパスでそれらのリソースが使用可能になるようにします。

    ドキュメンテーション・ファイルがプロジェクトの出力フォルダーにコピーされないようにするにはどのようにすればよいのでしょうか。

    ソース・フォルダーを使用して、出力フォルダーにコピーしないリソースをすべて、 クラスパスに含まれていない個別のフォルダーに挿入してください。

    デフォルト・パッケージはどのようにして作成するのでしょうか。

    その必要はありません。ソース・フォルダーまたはプロジェクトのルート・フォルダー内のファイルは、 デフォルト・パッケージ内にあると見なされます。 実際に、すべてのソース・フォルダーには、デフォルト・パッケージのフラグメントを持つ機能があります。

    リファクタリングとは何でしょうか。

    リファクタリングとは、振る舞いを保持したままプログラムを変換することを意味します。 JDT は、「Refactoring: Improving the Design of Existing Code」 (Martin Fowler 著、Addison Wesley 刊、1999 年) で解説されている多くの変換をサポートしています。

    コードの選択 / コードの解決 (F3) はどのような場合に使用するのでしょうか。

    コンパイラーを使用して、ソース範囲に対応する Java エレメントを見つけ出すために使用します。

    Java プログラム情報 (たとえば、型階層、宣言、参照) は、Java ビルダーで作成されるのですか。 自動ビルドがオフの場合でもその情報は更新されますか。

    Java プログラム情報は、Java ビルダーには依存しません。リソース変更または Java 操作を行うと、自動的に更新されます。 特に、Java ツールが提供しているすべての機能 (たとえば、型階層、コード・アシスト、検索) は、 自動ビルドがオフでも正確に動作し続けます。 たとえば、ビルダーをオフにする必要のある重いリファクタリングを実行している場合でも、 コード・アシストを使用することができます。コード・アシストは (まだビルドされていない) 最新の変更を反映します。 プログラムの起動 (つまり、実行とデバッグ) 以外で、Java ビルダーを必要とする機能は、コードの断片の評価だけです。

    ワークベンチを再度開いた後で、Java ソース・ファイルの編集後に最初に行うビルドが、 時間がかかりすぎるように思われます。なぜでしょうか。

    Java インクリメンタル・プロジェクト・ビルダーは、ワークベンチを閉じるときにその内部状態をファイルに保管します。 そのプロジェクトを再度開いた後、最初にビルドを行うと、Java インクリメンタル・プロジェクト・ビルダーは、 その内部状態を復元します。 このファイルが大きい場合、通常より長いビルド遅延が発生します。

    自分のクラスの型階層を表示することができません。どうすればよいのでしょうか。

    クラスパスのビルドが正しく設定されているかどうか確認してください。Java 開発においては、適切なクラスパスのビルドのセットアップは重要なタスクです。 正しいビルド・パスがない場合、コードをコンパイルすることはできません。Java エレメントを型階層で検索したり、 調べたりすることもできません。