Eclipseの統合開発環境を使いこなすEclipseを使おう!(2)

» 2003年01月24日 00時00分 公開
[的場聡弘, 岡本隆史株式会社NTTデータ]

 第1回「オープンソースのEclipseは仕事に使える開発環境」のHelloWorldの実行の後、自分で工夫しながらEclipseを使い始めた方もいらっしゃるのではないかと思います。その軽快な動作には目を見張るものがあるのではないでしょうか。

 筆者が常用しているPCのハードウェア環境は非常に非力で、従来の統合開発環境では動作が遅くて使う気になれませんでした。しかし、Eclipseにはそのようなストレスもなく軽快に動作し、Eclipseを導入する前の「エディタ+J2SDK」の環境と比べ、生産性も明らかに向上しています。ライセンス面でも使い勝手の面でも、文句なくお勧めできるものだといえるでしょう。

 今回は、Eclipseの基本的な使い方、使っていくうえで覚えておきたい用語などを確認します。さらには、使用していくうえでのちょっとしたコツをご紹介していきたいと思います。なお、以下では日本語化したEclipseを用いて説明します。Eclipseをまだインストールされていない方、日本語化されていない方は、第1回の記事を読んで環境を整備してください。

ワークベンチ全体を把握する

 Eclipse上のJava開発環境(Java Development Tool:JDT)は、前回ご紹介したとおり、Eclipseのプラグインとして提供されています。JDTを紹介する前に、ワークベンチ全体から見ていきましょう(画面1)

画面1 Eclipseのワークベンチ(クリックすると拡大します) 画面1 Eclipseのワークベンチ(クリックすると拡大します)

 起動すると現れるウィンドウ全体を「ワークベンチ」、中央部にあるソースが表示される部分を「エディタ」と呼びます。エディタの周囲には、「パッケージ・エクスプローラー」や「アウトライン」、「コンソール」など、いろいろな種類の「ビュー」があります。パッケージ・エクスプローラービューの下端に「階層」という文字が見えますが、これもビューです。階層ビューはパッケージ・エクスプローラービューと同じペインに、タブとして重ねて表示されています。

 ビューはそのタイトルバーをドラッグすることで、いろいろな位置に置くことができます。例えばアウトラインビューのタイトルバーをドラッグして、パッケージ・エクスプローラーのタイトルバーにドロップしてみると、このペインに重ねられ、タブになります。また、ワークベンチ左端のスペースにドロップすると、必要に応じて引き出せる「高速ビュー」になります。

 ビューにはこのほかにも、いろいろな機能を持ったものがあります。これらのビューの組み合わせを「パースペクティブ」といい、ワークベンチ内に複数のパースペクティブを保持することができます。開発の場面ごとに用意されたパースペクティブを用いて、適したビューの構成で作業をすることができるようになっています。またワークベンチ左端のボタンを使って切り替えることができます。

JDTの使い方を理解する

 JDTは、Eclipseにあらかじめ組み込まれているJava開発のためのプラグインです。Javaソース用のエディタや、型階層ビュー、デバッグ用のビューなどが含まれています。商用のIDEに劣らない、さまざまな機能が盛り込まれています。

 前回の記事でも触れましたが、コーディング中に[Ctrl]+[Space]を押下すると、その文脈で利用できるコードを補完してくれます(画面2)。また、パラメータヒントは、[Ctrl]+[Shift]+[Space]でポップアップします。

画面2 コードの候補が表示される 画面2 コードの候補が表示される

 また、オブジェクトのメンバ名の補完だけでなく、無名クラスを実装するときにオーバーライドするメソッドのスケルトンを生成したり、try-catchといった定型コードのスケルトンなどを生成したりすることもできます。単純なタイプミスなどは、[Ctrl]+[1]を押下することでEclipseが適切に修正候補を表示し、選択するだけで修正が完了します(画面3)

画面3 タイプミスに対して修正候補が表示される。表示された候補を選択するだけで修正が完了する 画面3 タイプミスに対して修正候補が表示される。表示された候補を選択するだけで修正が完了する

 import文がない場合、パッケージ名を含めた状態でクラス名補完を行うと、自動的にimport文を追加してくれます。import文がゴチャゴチャになってしまった場合は、「ソース」-「import文の編成」を行うことでいつでも整理できます。ソース全体の整形についても、「ソース」-「フォーマット」を実行するだけで、設定したフォーマットのとおりに整形してくれます。

 その他のコード作成の支援機能としては、スーパークラスのメソッドをオーバーライドしたい場合は「ソース」-「メソッドのオーバーライド」が、データメンバのGetter/Setterメソッドが欲しいときは「ソース」-「GetterおよびSetterの作成」が自動的にコードを作成してくれます。また、パッケージ・エクスプローラービューで、メソッドをドラッグしてほかのクラスにドロップするだけで、簡単にメソッドのコピーを行うこともできます。

 このように、コードを書く作業に余計な手間をかけることなく、ロジックを考えることに専念することができるわけです。

「検出されたVM」を正しく設定せよ

 System.out.println()などにマウスカーソルを当てると、メソッドの説明がポップアップしてきます。このとき、メソッドの詳細のコメントが出ず、メソッド名と引数の並びだけしか表示されないことがあります。これは「検出されたVM」に対するソースが正しく設定されていないことが原因です。

 メニューから「ウィンドウ」-「設定」-「Java」-「インストール済みJRE」の「検出されたVM」のロケーションが「C:\Program Files\Java\j2re1.4.1_01」のようにJREを指している場合、「編集」ボタンを押して「C:\j2sdk1.4.1_01」のように修正しておくと改善されます(画面4)。このとき同時に、JavaDoc URLに“http://java.sun.com/j2se/1.4/ja/docs/ja/api”と指定しておくと、クラスやメソッドを選択して「ナビゲート」-「外部JavaDocを開く」とすることで、そのAPIドキュメントを参照できるようになります。

画面4 検出されたVMを正しく設定する 画面4 検出されたVMを正しく設定する

@authorタグに自分の名前が自動で入ってほしい!

 クラスコメントを自動生成したとき、@authorタグは、@author userのようになっているかと思います。この部分、本来なら自分の名前が入ってほしいところです。これは実は、テンプレートの国際化が不十分であることによる不具合です。

 この不具合を解消するためのパッチ(ja_templates_patch1.zip)を用意しました。NLSパッケージを導入後にパッチを上書きすることで解決します。これはテンプレートのカーソル位置の問題も修正してあります。

 また、synchronizedやfinallyなどのいくつかのテンプレート(anothertemplates.xml)を用意しました。「ウィンドウ」-「設定」-「Java」-「テンプレート」-「インポート」から、このファイルをインポートすることで追加できます。

 もともと登録されているmain、new、lazy、instanceof、stdout、stderrテンプレートと併せて利用してみてください。


ライブラリを利用する

 サードパーティのライブラリを利用する方法は2つあります。デプロイ時にそのライブラリを同梱しない場合は、プロジェクトのプロパティ画面の「Javaのビルド・パス」-「ライブラリ」-「外部JARの追加」で、そのライブラリを指定することで利用できるようになります。

 デプロイする段階で同梱したい場合は、プロジェクトにライブラリを組み込み、内部jarファイルとして参照します。「ファイル」-「インポート」-「ファイルシステム」で、インポートしたいjarファイルのあるディレクトリを選択し、表示された一覧からライブラリを指定すると、プロジェクトに取り込むことができます。その後、プロジェクトのプロパティ画面の「Javaのビルド・パス」-「ライブラリ」-「JARの追加」で、インポートしたライブラリを指定することで、利用できるようになります。

「コードの断片」の実行

 Javaプロジェクトで、「ファイル」-「新規」-「スクラップブック・ページ」を追加すると、.jpageという拡張子の付いたファイルができます。これはEmacsの*scratch*ページ(Lisp Interactionモード)のように、ちょっと思い付いたコードをメモし、それを即座に実行する、といった使い方ができるページです。

 例えば、「java.text.DecimalFormat.getCurrencyInstance().format(19800);」と入力した後、その行を選択して「実行」-「表示」すると、“(java.lang.String) \19,800”といった結果を得ることができます。

ビルド機能

 Javaソースファイルのコーディング中でも、軽微な文法エラーがある場合、エディタの左端に黄色い印が付きます。保存すると、自動的にコンパイルが行われます。コンパイルエラーが発生している場合、ナビゲータビュー上でエラーが発生している個所に赤い×印が付くとともに、修正が必要な個所がタスクビューに表示され、一目で分かるようになっています(画面5)

画面5 ナビゲータビュー、タスクビューに問題箇所を知らせてくれる (クリックすると拡大します) 画面5 ナビゲータビュー、タスクビューに問題箇所を知らせてくれる (クリックすると拡大します)

 タスクビューで、エラータスクをダブルクリックし、エラーの場所にジャンプして修正しましょう。この例では、Runnableインターフェイスのrun()メソッドを実装する必要があります。「ソース」-「メソッドのオーバライド」を実行し、「run」にチェックを付けて「OK」を押すと、スケルトンコードを生成してくれます。必要なコードを実装して「保存」し、赤い印が全部消えれば、実行できるようになっています。

タスクで作業メモ

 開発中、作業を後回しにするといったとき、その内容とソースコード位置を合わせて「タスク」としてメモしておくことができます(画面6)

画面6 タスクにメモを残しながら作業できる (クリックすると拡大します) 画面6 タスクにメモを残しながら作業できる (クリックすると拡大します)

 いま作ったrunメソッドにカーソルを移動し、「編集」メニュー、またはエディタの左端での右クリックメニューから、「タスクの追加」を選択し、説明を追加すると、タスクビューのエントリとして追加できます。タスクビューのエントリをダブルクリックすることで、カーソルが該当行へジャンプしていきます。

 似たような機能として、「ブックマーク」があります。ブックマークビューにリストされることを除いて、タスクと同様の機能を持っています。ブックマークビューが表示されていないときは、「ウィンドウ」-「ビューの表示」-「その他」-「基本」で「ブックマーク」を選択することで表示できます。

デバッグ支援機能

 Eclipseは、ブレークポイントを設定したり、ステップを実行したりといったデバッグ支援機能を持っています。

 ソース上で右クリックして「ブレークポイントを設定」したうえで、「実行」-「デバッグ」すると、自動的にデバッグパースペクティブに切り替わり、設定したブレークポイント上で実行がいったん停止します。この時点で、デバッグビューでスタックトレースを観察したり、変数ビューで変数の中身を見たり、表示ビューで式を評価したり、ステップを実行したりできます(画面7)

画面7 ブレークポイントの設定やステップ実行といったデバッグに必須の機能が用意されている (クリックすると拡大します) 画面7 ブレークポイントの設定やステップ実行といったデバッグに必須の機能が用意されている (クリックすると拡大します)

 J2SDK 1.4以降のVMを使っている場合は、デバッグ中にコードの修正を行い、ダイナミックにデバッグを行うことが可能です。

コードを飛び回れ

 コード中のメソッド呼び出しを右クリックして「宣言を開く」(または[Ctrl]+[G])とすると、そのメソッドの実装部分にジャンプすることができます。オブジェクトに対して同じ操作をすると、そのオブジェクトのクラス定義にジャンプしていけます。

 別のファイルにジャンプした場合は、エディタ上の別タブとして開きますので、元のタブを選択(または[Ctrl]+[F6])すれば元の位置に戻ることができます。

 メソッド定義を右クリックして「検索」-「参照」-「ワークスペース」(または[Ctrl]+[Shift]+[G])とすると、そのメソッドを呼び出している個所を検索し、検索ビューに表示します。検索結果はエディタ上で黄色い矢印で表示されています。クラス名をキー入力して探したいときは、サーチ([Ctrl]+[H])が便利です。

リファクタリング機能

 メソッドの名前を変更するなど、ソースの広い範囲に影響が加わるリファクタリングも、比較的簡単に実施できます。メソッド定義で右クリックして、「リファクタリング」-「名前の変更」を実行すると、ワークスペース上のソースから影響範囲を探し出し、自動的に修正されます。

 メソッドのプルアップ(スーパークラスへの移動)や、別クラスへの移動なども半自動です。関連する部分も自動的に修正されるので、奔放にリファクタリングを行い、ソースの品質向上に大いに役立てていくことが可能となっています。

まとめ

 今回は、EclipseのワークベンチとJava開発環境について見てきました。若干の不具合は残っていますが、それを補って余りある便利さと軽快さがEclipseの大きな特徴です。もうこれは使わない手はないといっても過言ではないでしょう。

 次回は、サーバサイドアプリケーションを開発していきます。それを通して、Eclipseがデフォルトで搭載していない機能を、プラグインを組み込んで利用していく方法をご紹介します。

筆者紹介

NTTデータ ビジネス開発事業本部

的場 聡弘(まとば あきひろ;matobaa)

現在、株式会社NTTデータ ビジネス開発事業本部に所属。社内技術支援業務に携 わり、主にJ2SEおよびJ2EEを用いたシステム構築に係わる方式設計や障害対応を 担当している。 おちゃらけプログラマ七号機(http://www.ocharake.org/)や、ぱ〜む脱力ゲーム協会(http://palmgames.tripod.co.jp/)の公認脱力作家という顔も持つ。

NTTデータ 技術開発本部

岡本 隆史(おかもと たかし)

Debian GNU/Linuxの優れたメンテナンス性と他のディストリビューションを圧倒するパッケージ数に引かれDebianを使い始めたのをきっかけに、Debian プロジェクトの開発者となりJavaサポートの強化を行う。 『Jakartaプロジェクト徹底攻略』(技術評論社)、『WEB+DB PRESS』(技術 評論社)、『Java World』(IDGジャパン)、『JAVA Developer』(ソフトバンクパブリッシング)などで執筆活動を行っている。



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。