Eclipse V3.4 をマスターする: 第 2 回 JDT

Java 開発ツールでよく使用されている機能を理解する

連載「Eclipse をマスターする」では、まったくの Eclipse 初心者を対象に Eclipse IDE のノウハウをくまなく教えます。今は初心者でも、連載が終わる頃には上級ユーザーと肩を並べるほどになっているはずです。今回の記事では、Eclipse JDT のさまざまな構成要素を操作する方法を説明します。

Prashant Deva, Founder, Placid Systems

Prashant DevaPrashant Deva は Placid Systems の創立者であり、Eclipse 用の ANTLR Studio プラグインの作成者でもあります。彼は ANTLR や Eclipse プラグインの開発に関するコンサルティングも行っています。彼は ANTLR や Eclipse プラグインに関する記事を何本か執筆しており、また Eclipse の開発チームに対して頻繁にアイデアやバグ・レポートを寄せています。彼は現在、素晴らしい次期開発ツールを作成するために多忙な日々を送っています。


developerWorks 貢献著者レベル

2008年 11月 11日

今回の記事で取り上げるのは、Java™ 開発ツール (JDT) です。JDT でよく使用されている機能と、そのカスタマイズ方法を説明します。さらに、他の環境とは異なる Eclipse 統合開発環境 (IDE) での概念と機能について、そして JDT を初めて使用するユーザーにとってわかりにくい機能についても解説します。Eclipse V3.4 を使い始めたばかりの方は、連載の第 1 回を参照してください。

JDT の概要

Eclipse は今や、Java 開発の代名詞となっています。しかし多くの Eclipse 初心者にとって、Eclipse と Java 技術との関係はそれほど明白ではないかもしれません。

Eclipse は必要最小限のプラットフォームで、たまたま Java プログラミング言語で作成されています。Eclipse には、IDE をベースに作成された Mylar や Findbugs などのプラグインによる機能が提供されており、Java 言語が Eclipse を Java IDE のように機能させることを可能にしています。JDT はデフォルトで Eclipse ダウンロードに含まれていることからすぐには理解できないかもしれませんが、開発者が Eclipse を Java 開発に使用すると言うときには、実際には JDT を使用することを意味しています。


Java プロジェクトの詳細

図 1. 「パッケージ・エクスプローラー」に表示された標準的な Java プロジェクト
「パッケージ・エクスプローラー」に表示された標準的な Java プロジェクト

Eclipse には、ファイルをブラウズするための複数のビュー (「ナビゲーター」ビューや「プロジェクト・エクスプローラー」ビューなど) が組み込まれていますが、ここでは「パッケージ・エクスプローラー」ビューを使用して Java プロジェクトを表示します。このビューには Java プロジェクトごとの src フォルダーが表示されるので、各 src フォルダーに含まれるパッケージをナビゲートすることができます。個々の Java ファイルを展開すると、その概要を確認することができます。さらに、各プロジェクトの「参照ライブラリー」項目を展開してプロジェクトのビルド・パスにあるライブラリーを確認することもできます。

Java プロジェクトは、以下の要素で構成されます。

src フォルダー
このフォルダーに含まれるのは、アプリケーションの実際のソース・コードです。デフォルトでは、Java プロジェクトを新規に作成すると、すべてのソース・コードを保持するための src フォルダーを Eclipse が作成しますが、ソース・フォルダーとして任意のフォルダーを追加することもできます。例えば、大抵のユーザーは tests フォルダーを用意して、そこに自分たちのテスト・ケースを作成しています。tests フォルダーをプロジェクトに追加する方法は以下のとおりです。
  1. プロジェクトを右クリックして 新規 > フォルダー の順にクリックします。
  2. フォルダーの名前 (この場合は tests) を入力し、OK をクリックします。
  3. tests フォルダーを右クリックして ビルド・パス > ソース・フォルダーとして使用 の順にクリックします。
output フォルダー
このフォルダーには、ソース・コードから生成された .class ファイルが含まれます。デフォルトで Eclipse がこれらのファイルを保持するために作成するのは、bin フォルダーです。
参照ライブラリー (Referenced Library)
現行のプロジェクトが依存するライブラリー、またはワークスペース内のその他の Java プロジェクトが含まれています。これらのライブラリーまたは Java プロジェクトは、Eclipse が Java プロジェクトをビルドまたは実行するときに、ビルド・パスおよび CLASSPATH に追加されます。

ビルド・パスのセットアップ

多くの場合、Java プロジェクトが使用するクラスはコンピューター上の他の Java アーカイブ (JAR)、または同じワークスペース内の他のプロジェクトにあります。これらのクラスを使用するには、対応するプロジェクトまたは JAR を現行プロジェクトのビルド・パスに追加しなければなりません。ビルド・パス上になければ、Eclipse はプロジェクトでコンパイル・エラーを表示します。プロジェクトのビルド・パスを変更する方法は以下のとおりです。

  1. 「パッケージ・エクスプローラー」で「プロジェクト」を右クリックし、「プロパティー」をクリックします。
  2. 表示されるウィンドウで、「Java のビルド・パス (Java Build Path)」を選択します。
  3. ビルド・パスと同じワークスペースにプロジェクトを追加するには、「プロジェクト (Projects)」タブをクリックし、このタブで「追加」をクリックします。
  4. ビルド・パスに配置するプロジェクトを選択し、「OK」をクリックします。

JAR をプロジェクトに追加するには、以下の操作を行います。

  1. ライブラリー (Libraries)」タブをクリックします。
    図 2. ビルド・パスの変更
    ビルド・パスの変更
  2. 外部 JAR の追加 (Add External JARs)」をクリックし、追加する JAR を選択します。

コンパイラー設定のカスタマイズ

Eclipse では、組み込み Java コンパイラーの設定をカスタマイズできるようになっています。Eclipse はこのコンパイラーを使用してプロジェクトをビルドします。コンパイラー設定をプロジェクトに合わせてカスタマイズする方法は、以下のとおりです。

  1. 「パッケージ・エクスプローラー」で「プロジェクト」を右クリックし、「プロパティー」をクリックします。
  2. 表示されるウィンドウで、「Java コンパイラー (Java Complier)」を選択します。
    図 3. Java コンパイラー設定のカスタマイズ
    Java コンパイラー設定のカスタマイズ
  3. このページで以下の操作を行います。この操作は、Java コンパイラーの残りの設定ページにも該当します。
    • コンパイラー設定の変更内容をこのプロジェクトにのみ適用できるように、「プロジェクト固有の設定を可能にする (Enable project specific settings)」を選択します。
    • 変更内容をワークスペース内のすべてのプロジェクトに適用するには、「ワークスペース設定の構成 (Configure Workspace Settings)」リンクをクリックします。
  4. コンパイラー準拠レベル (Compiler compliance level)」メニューから、ソースをどの Java バージョンでコンパイルするかを選択します。例えば Java V1.5 の機能を使用している場合には、「1.5」を選択します。
  5. 「Java コンパイラー (Java Compiler)」ツリーを展開して、「エラー/警告 (Errors/Warnings)」を選択します。このページでは、Eclipse がコード内に潜在するエラーにフラグを立てるように設定することができます。条件があまりにも厳しいと思う項目 (例えば、「何も記述のない空のブロック」) を Eclipse が無視するように設定することも、問題の重大度に応じて警告またはエラーのフラグを立てるように項目を設定することもできます。
    図 4. Java コンパイラーのエラーおよび警告のカスタマイズ
    Java コンパイラーのエラーおよび警告のカスタマイズ注:潜在的なプログラミングの問題」と「使用すべきではない制限された API」の配下にある項目は、少なくとも「警告」レベルに設定することをお勧めします。ただし、オブジェクトの多くを同期化する予定でない限り、「潜在的なプログラミングの問題」配下の「serialVersionUID なしのシリアライズ可能クラス」に関しては無視するように設定しても構いません。
  6. 展開した「Java コンパイラー (Java Compiler)」ツリーで「タスク・タグ (Task Tags)」を選択します。「タスク・タグ」では、自分や他の開発者のためにコードのコメントにメモを残すことができます。例えば、「//TODO これはバグです。詳細は http://bugs.mycompany.com/3434/ を参照」のような行を記入して、このメモ自体を「タスク」ビューに表示することができます。「タスク」ビューでメモをクリックすると、ソース・ファイルの該当する場所にジャンプします。デフォルトでは Eclipse に FIXMETODOXXX の 3 種類の「タスク・タグ」が用意されていますが、BUG などの独自のタグを追加することもできます。その場合には、「Java コンパイラー (Java Compiler)」ツリーで「タスク・タグ (Task Tags)」を選択し、「新規 (New)」をクリックしてください。すると、タグの名前を入力できるウィンドウ (図 5 を参照) が表示されるので、さらに「タグ (Tag)」に「優先度 (Priority)」を設定することもできます。優先度を設定すると、「タスク」ビューで優先度によってメモをソートできるため便利です。
図 5. 「タスク・タグ」のカスタマイズ
「タスク・タグ」のカスタマイズ

リファクタリング

リファクタリングは、コードをある場所で変更すると、その変更が別の場所にあるコードにも反映されるようにする簡単な方法です。ややこしく聞こえるかもしれませんが、この後の説明を読んでください。このセクションで説明する内容は、おそらく Eclipse の最も面白い部分です。Eclipse には多数のリファクタリング機能が含まれています。そのすべてを説明するとなると、それだけで 1 つの記事になってしまうほどなので、この記事では最もよく使われるリファクタリングに絞って説明します。

名前変更リファクタリング

すべてのリファクタリングのなかで最もよく使用されるのは、おそらく名前変更リファクタリングです。この機能を使用すると、プロジェクト内の任意のメソッド、変数、クラスの名前を変更することができます。以下に説明する操作を試してみてください。

  1. エディターで任意の変数を選択します。
  2. Eclipse GUI 上部にあるメニューから、リファクタリング (Refactor) > 名前変更 (Rename) の順に選択します (図 6 を参照)。Java エディターで、変数名とその変数が使用されているすべての場所が枠で囲まれて表示されます。
    図 6. リファクタリング・メニューに用意された多数のリファクタリング
    リファクタリング・メニューに用意された多数のリファクタリング
  3. 変数の新しい名前を入力し、Enter キーを押します。変数が使用されているすべての場所が自動的に、新しい名前が使用されるように変更されます。

同じ方法でクラスの名前やメソッドの名前を変更すると、クラスまたはメソッドが使用されている場所がすべて、新しい名前を使用するようになります。この方法を使用すれば、手作業でメソッドが呼び出されるすべてのインスタンスを見つけて変更するという手間を省けるので、大幅な時間の節約となるとともに、エラーの可能性もなくなります。Java プロジェクト内のメソッド、変数、クラスの名前を見直さずに、簡単に変更することができます。

移動リファクタリング

このタイプのリファクタリングは、クラスをパッケージ間で移動する場合に特に役立ちます。この機能は名前変更リファクタリングに次いで、よく使用することになるはずです。以下に説明する操作を試してみてください。

  1. 「パッケージ・エクスプローラー」で任意のクラスを右クリックし、リファクタリング > 移動 の順にクリックします。ウィンドウが開き、現行プロジェクトに含まれるパッケージと、このプロジェクトが依存する他のプロジェクトがすべて表示されます。
  2. クラスの移動先とするパッケージを選択し、OK をクリックします。クラスが新しいパッケージに物理的に移動され、コード内でのそのクラスへの参照 (import 文など) がクラスの新しい場所を参照するように変更されます。

この操作を省略したい場合には、クラスをパッケージ間でドラッグ・アンド・ドロップするという方法も使用できます。すると、移動リファクタリングが自動的に実行されます。


Java プロジェクトのビルド

Eclipse には「コンパイル」ボタンがありません。この点が多くの初心者を困惑させていますが、これが Eclipse の持つもう 1 つの驚くべき機能です。Java プロジェクトをコンパイルする必要はまったくありません。これは、プロジェクトが常にビルドされているからです。ファイルを保存すると、Eclipse がファイルだけでなく、そのファイルが影響するその他すべてのファイルをユーザーに気付かれることなくバックグラウンドでコンパイルします。この振る舞いにより、プロジェクトが再コンパイルするまで待つ必要がなくなることから、プロジェクトを開始するまでに必要な時間が短縮されます。


プロジェクトの実行

Java プロジェクトを実行するのに最も簡単な方法は、main メソッドが含まれるファイルを開いてから、ツールバーで「実行 As」ボタンをクリックするという方法です。この操作によって、起動構成が作成されます。次にプロジェクトを実行するときには、「実行 As」ボタンの隣にある矢印をクリックし (図 7 を参照)、main メソッドが含まれるクラスの名前が設定された構成を選択してください。

図 7. プロジェクトの実行
プロジェクトの実行

プロジェクトのデバッグ

デバッグを行うにはまず、コード内にブレークポイントを設定する必要があります。それには、ブレークポイントを設定する行の隣にある、エディターの左端の列をクリックします。デバッグ・モードの開始方法はプロジェクトを実行する方法と同じで、ツールバーで「実行 As」ボタンの代わりに「デバッグ As」をクリックするという点が異なるだけです。

図 8. プロジェクトのデバッグ
プロジェクトのデバッグ

ブレークポイントに達すると、Eclipse ウィンドウが最前面にポップアップ表示されて、「デバッグ」パースペクティブに自動的に切り替わります。このパースペクティブに、プログラムのデバッグに役立つビューが含まれます。以下に、よく使用されるビューのいくつかについて簡単に説明します。

「デバッグ」ビュー
現在実行中のプログラムを制御するこのビューでは、スタックを表示してプログラムをステップスルーすることができます。このビューを使用してプログラムを一時停止または停止することもできます。
「変数」ビュー
このビューには、現行のメソッドに含まれるローカル変数が表示されます。値は、プログラムをステップスルーするのに伴い変化します。
「ブレークポイント」ビュー
このビューには、現行のブレークポイントが一覧として表示されます。この一覧からブレークポイントを選択またはクリアすることによって、ブレークポイントを有効または無効にすることができます。
「式」ビュー
このビューでは、任意の Java 式を入力して、プログラム実行の現時点でのコンテキストにおける式の値を確認することができます。このビューに Java 式を追加する方法は以下のとおりです。
  1. ビュー内を右クリックし、「監視式を追加」をクリックします。
  2. 表示されたウィンドウに、式を入力して「OK」をクリックします。入力した式が「式」ビューに追加され、その値はコードをステップスルーするのに伴い更新されていきます。注意する点として、変数の値を変更する式を入力すると、コードに予期しない影響を与える場合があります。

まとめ

この記事では、Eclipse JDT とその機能について詳しく説明しました。これで、JDT の構成要素を必要に応じてカスタマイズする方法、そしてJDT の初心者が混乱しがちな点について理解できたはずです。

連載「Eclipse をマスターする」の第 3 回では、JDT で最も強力な構成要素であるエディターに焦点を当て、その強力な機能の数々を説明します。

参考文献

学ぶために

製品や技術を入手するために

議論するために

  • Eclipse に関する質問を投じる最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルト Usenet ニュース・リーダー・アプリケーションが起動され、eclipse.platform が開きます)。
  • Eclipse newsgroups には Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogs から developerWorks コミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=357318
ArticleTitle=Eclipse V3.4 をマスターする: 第 2 回 JDT
publish-date=11112008