私がかつて従事していたプロジェクトで技術リーダーをしていた私の友人は、大規模なファイル・セットのディレクトリーを検索して特定のクラス・ファイルを見つけ出す作業を「洞窟探検」と呼んだことがあります。大規模な Java プロジェクトの場合、インターフェースやクラスが追加されるにつれ、1 つのファイルを見つけるためにコード・ベースをナビゲートする時間が長くなるのは当然のことです。「Package Explorer (パッケージ・エクスプローラー)」にあるこうした大量のファイルやディレクトリーの中を検索していると、洞窟の奥深くを探検しているような気になります。
もし皆さんが Java のメソッドやクラスを見つけるために相変わらず洞窟探検のようにパッケージやディレクトリーを検索しているのであれば、今回の記事のヒントを大規模なプロジェクトのナビゲートに役立ててください。「Package Explorer (パッケージ・エクスプローラー)」を使うのを避け、ここで説明するヒントを使ってみてください。そのヒントのほとんどが、マウスを少しだけ操作し、2、3 回クリックするだけでよいのです。
Galileo よりも前のバージョンの Eclipse では、Java のファイルを素早く開いて内容を表示する 1 つの方法は、1 つのメソッドまたはクラスを右クリックし、表示されるコンテキスト・メニューの「Open Declaration (宣言を開く)」をクリックすることで、Java エディターの中で Java 要素 (メソッド、インターフェース、クラス) を開く方法でした。コンテキスト・メニューを使う方法の他に、Java エディターの中で Ctrl キーを押し、要素上でマウスを動かす方法もあります。要素上でマウスを動かすと、その要素がリンクに変わります。そのリンクをクリックすると、Java エディターの中でその要素を宣言しているところにジャンプします。
Galileo では新たにドロップダウン・リストが表示され、宣言を開くための選択肢がドロップダウン・リストに表示されます。「Open Declaration (宣言を開く)」をクリックすると、選択された要素が Java エディターの中で開かれます。
図 1. 宣言を開く
「Open Declaration (宣言を開く)」を使う場合の唯一の問題は、インターフェースを使用している場合にありました。インターフェースを使用している場合、「Open Declaration (宣言を開く)」コマンドによって要素の宣言 (つまりインターフェース) が開かれます。これでは少し困る場合があります。例えば、プロジェクトが実行された場合に実際に実行される Java コードを調べるために、選択された要素の実装を開きたいような場合です。この問題は、Galileo での新しいコマンド機能である「Open Implementation (実装を開く)」によって解決されています。
「Open Implementation (実装を開く)」を呼び出すためには、Java エディターの中にある Java 要素上でマウスを動かしながら Ctrl を押します。これはハイパーリンクを使って宣言を開く場合とまったく同じです。するとドロップダウン・リストが表示されるので、「Open Implementation (実装を開く)」をクリックします。
図 2. 実装を開く
上記のコードを使用すると、エディターが開き、その要素の実際のクラスの実装が表示されます。
図 3. エディターの中に表示されるコード
要素のドキュメントとして Javadoc (「参考文献」を参照) を使っている場合には、先ほどと同じ Ctrl + クリックの手法を使うと、Javadoc の中で @see キーワードまたは @link キーワードを使って参照されている要素を開くことができます (図 4)。キーワードに続くハイパーリンクをクリックすると、Eclipse は指定された型を Java エディターの中で開きます。
図 4. Javadoc のコメントで Ctrl + クリックを使う
Galileo では新しい機能として、@see または @link によって定義される要素のドキュメントを表示することができます。Javadoc プレビューと Javadoc ビューでは要素がハイパーリンクとして表示されます。そのハイパーリンクをクリックすると、クリックされた要素の Javadoc が表示されます。要素の Javadoc を読みたいだけであれば、新しい Java エディター・ビューの中でファイルを開く手間を省くことができます。
図 5. Javadoc ビューでハイパーリンクを素早く読み取る
「Quick Outline (クイック・アウトライン)」を表示する
メソッドを沢山持つ大規模なクラス・ファイルの場合、Ctrl+O を押すと「Quick Outline (クイック・アウトライン)」が開かれ、メソッドやフィールドを素早く見つけることができます。Ctrl+O を押した後、見つけたいメソッドの名前を入力していきます。名前が入力されるにつれ、リストに表示される内容はフィルタリングされ、一致する要素のみが表示されるようになります。
図 6. 「Quick Outline (クイック・アウトライン)」を使う
リストから要素を選択すると、Eclipse は現在の Java エディターの中にある、その要素までナビゲートしてくれます。
「Quick Type Hierarchy (クイック型階層)」を表示する
Java エディターの中でクラス・ファイルが開いており、型の階層構造の中にある Java の型を開きたい場合には、Ctrl+T を押すと (または、「Navigate (ナビゲート)」 > 「Quick Type Hierarchy (クイック型階層)」の順にクリックすると)、型の階層構造を表示することができます。
図 7. 「Quick Type Hierarchy (クイック型階層)」を使用する
この階層構造では、選択された要素のサブタイプが表示されます。例えばインターフェースを選択して「Quick Type Hierarchy (クイック型階層)」を呼び出した場合には、そのインターフェースを実装する既知のクラスがすべて一覧表示されます。
再度 Ctrl+T を押すと「Quick Type Hierarchy (クイック型階層)」が実行され、スーパータイプが一覧表示されます (図 8)。この一覧には、選択された要素が実装するインターフェースや、選択された要素が継承するクラスがすべて含まれています。
図 8. 「Quick Type Hierarchy (クイック型階層)」を使ってスーパータイプを見つける
「Quick Type Hierarchy (クイック型階層)」によって表示される一覧から 1 つの型を選択すると、Eclipse は選択された型で新しい Java エディターを開きます。
エディターに表示したい Java クラスの名前がわかっている場合には、そのクラスを見つけて開くための最も簡単な方法は、Ctrl+Shift+T を押し (または、「Navigate (ナビゲート)」 > 「Open Type (型を開く)」の順にクリックし)、「Open Type (型を開く)」ウィンドウを表示する方法です。このウィンドウが表示され、そこに名前を入力していくと、Eclipse は入力された型に一致する型を見つけて表示します。
図 9. 「Open Type (型を開く)」を使う
完全なクラス名を入力する方法の他に、さらに速く結果を見つけるための 2 つの方法があります。1 つ目の方法は、ワイルドカード * と ? を使用して、それぞれ任意の文字または 1 つの文字と突き合わせる方法です。例えば AutomobileFormatter クラスを見つけるためには、「Auto*」または「A*Formatter」と入力します (図 10)。
図 10. 「Open Type (型を開く)」でワイルドカードを使う
2 つ目の方法は、そのクラスの省略形を使う方法です。省略形には型の名前の大文字を使います。例えば AutomobileFormatter を見つけるためには「AF」と入力します。それでもあまり選択肢は狭まらないかもしれないため、「AuFo」と入力します。「Open Type (型を開く)」ウィンドウのリストから型を選択し、「OK」をクリックします。すると Eclipse は選択された型を Java エディターの中で開きます。
場合によると、開きたいファイルが Java 要素ではなく、プロパティー・ファイルや XML ファイルの場合があります。その場合には「Open Type (型を開く)」を使う代わりに「Open Resource (リソースを開く)」を使います。そのためには、Ctrl+Shift+R を押すか、あるいは「Navigate (ナビゲート)」 > 「Open Resource (リソースを開く)」の順にクリックします。「Open Type (型を開く)」の場合と同様、ワイルドカード文字または省略形を使用すると、リソースの選択肢を素早く狭めることができます。また「Open Type (型を開く)」のように、一覧からリソースを選択して「OK」をクリックすると、Eclipse は選択されたリソースを開きます。
Java エディターでのパンくずリストの使い方は「Package Explorer (パッケージ・エクスプローラー)」の使い方と似ています。ただしメソッド、クラス、パッケージ、その他のプロジェクト・リソースの表示は、Java エディターのパンくずリストの方が、はるかにナビゲートしやすい形式になっています。
パンくずリストをオンにするためには、下記のボタンをクリックします。
図 11. Java エディターでパンくずリストをオン・オフするためのボタン
パンくずリストをオンにすると、図 12のようにパンくずリストが表示されます。エディターの中で別の要素を選択すると、パンくずリストの項目が変更され、現在選択されている要素と、その要素を含むプロジェクトの階層構造が表示されます。
図 12. Java エディターのパンくずリスト
パンくずリストをクリックすると、その階層構造で同じレベルにある他の要素を表示することができます。
図 13. 階層構造で同じレベルにある他の要素を表示する
Eclipse には大規模なコード・ベースを素早く効率的にナビゲートする場合に役立つ機能が用意されています。そのため、洞窟探検のようにコードのファイルやディレクトリーの中を探し回る必要はありません。Eclipse IDE の機能を利用することで、コードの実装に時間とエネルギーを集中させることができ、クラスやメソッドを見つけるために大きな時間とエネルギーを費やす必要がなくなります。
学ぶために
- Javadoc Tool のサイトで Javadoc について学んでください。
- 「Eclipse Galileo の接近調査」を読み、Galileo の新機能について学んでください。
- 「Eclipse の推奨読み物リスト」を調べてみてください。
- developerWorks には他にも Eclipse に関する資料が豊富に用意されています。
- developerWorks を Twitter でフォローしてください。
- Eclipse が初めての人は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源やアーキテクチャー、またプラグインを使って Eclipse を拡張する方法などを学ぶことができます。
- IBM developerWorks の Eclipse project resources を利用して Eclipse のスキルを磨いてください。
- developerWorks podcasts ではソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。
- developerWorks の Technical events and webcasts で最新情報を入手してください。
- IBM とオープンソース技術、そして製品機能を調べ、学ぶために、無料の developerWorks On demand demos をご覧ください。
- IBM オープンソース開発者にとって関心のある、世界中で今後開催される会議や業界展示会、ウェブキャスト、その他のイベントについて調べてみてください。
- developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。
製品や技術を入手するために
- Eclipse の最新 IDE、Eclipse Galileo をダウンロードしてください。
- IBM alphaWorks に用意された最新の Eclipse technology downloads を調べてください。
- Eclipse Foundation から Eclipse Platform やその他のプロジェクトをダウンロードしてください。
- IBM 製品の試用版をダウンロードするか、あるいは IBM SOA Sandbox のオンライン試用版で、DB2®、Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。
- 皆さんの次期オープンソース開発プロジェクトを IBM ソフトウェアの試用版を使って革新してください。ダウンロード、あるいは DVD で入手することができます。
議論するために
- Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。
- Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
- developerWorks blogs から developerWorks のコミュニティーに加わってください。

Nathan A. Good はミネソタ州の Twin Cities エリアに住んでいます。彼はプロとしてソフトウェア開発やソフトウェア・アーキテクチャー、システム管理などを行っています。彼はソフトウェアを書いている時以外は、PC やサーバーを構築したり、新しい技術について資料を読んだり、そうした技術に取り組んだり、彼の友人達をオープソース・ソフトウェアに移行させようとしたりしています。彼は数多くの本や記事を執筆、あるいは共同で執筆しており、その中には『Professional Red Hat Enterprise Linux 3』や『Regular Expression Recipes: A Problem-Solution Approach』、『Foundations of PEAR: Rapid PHP Development』などがあります。