Eclipse Tips

最終更新日:2008/03/21

目次

コーディング

ソースコードのフォーマット

エディタ上でCtrl + Shift + F
文字通りソースコードをフォーマットする。プロジェクト内のソースすべてやパッケージ単位で実行したい場合は、プロジェクトやパッケージを選択して右クリック>ソース>フォーマット。

インポートの編成

エディタ上でCtrl + Shift + O(オー)
必要なインポートの追加、未使用インポートの削除、'*'の展開を行う。プロジェクト内のソースすべてやパッケージ単位で実行したい場合は、プロジェクトやパッケージを選択して右クリック>ソース>インポートの編成。

クイックフィックス

例えば以下のコードはInterruptedExceptionをcatchするかthrowしなければならないため、エディタ上に赤の波線でコンパイルエラーが通知される。

Thread.sleep(1000);

このコードにカーソルをあわせ、Ctrl + 1>try/catchで囲む を選ぶと、try-catchが自動生成される。 同様に Ctrl + 1>スロー宣言の追加 を選ぶと、メソッドにスロー宣言が追加される。

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    // TODO 自動生成された catch ブロック
    e.printStackTrace();
}

範囲指定してコメントイン/コメントアウト

コメントイン/コメントアウトしたい複数の行を選択して、Ctrl + / でコメントインとコメントアウトを交互に行うことができる。

アウトライン表示

エディタ上で Ctrl + O(オー) とすると、ソースのアウトラインがポップアップで表示される。アウトラインビューを表示する必要がなく、同じクラス内の別のメソッドやフィールドへすばやくアクセスできる。

ビューの最大化

エディタ上で Ctrl + M。解除も同様。

メソッド/変数の宣言にすばやくアクセス

エディタ上でCtrlを押しながらメソッド名や変数を選択でその宣言へジャンプする。F3キーでも同様。

Getter/Setter生成

エディタ上で右クリック>ソース>Getter および Setterの生成。フィールド毎にGetter, Setterを生成するか選択できる。

フィールドを使用してコンストラクタ生成

エディタ上で右クリック>ソース>フィールドを使用してコンストラクターを生成。オブジェクト生成時にすべてのフィールドを初期化するコンストラクタが作られる。

テンプレートによるコードの半自動生成

Eclipseでは様々なテンプレートが用意されている。例えば、「sysout」と入力して Ctrl + Spaceとすると、「System.out.println();」と変換される。このような定型的なコードをすばやく生成することができる。以下、有用と思われるテンプレート。

名前変換後のコード
sysout
System.out.println();
main
public static void main(String[] args) {
    
}
foreach
for (型名 変数名 : コレクション名) {
    
}
toarray
(型名[]) コレクション名.toArray(new 型名[コレクション名.size()])

foreach や toarray はその位置から近い位置?にあるコレクションオブジェクト(Listなど)を検索して、そのコレクションの型名や変数名を反映したテンプレートを出力するようになっている。例えば次のコードに対して「foreach」のところで Ctrl + Spaceを実行すると

List<String> strs = new ArrayList<String>();
foreach

次のようなコードが生成される。

List<String> strs = new ArrayList<String>();

for (String string : strs) {
    
}

同じく、toarrayについても、次のコードに対して「toarray」のところで Ctrl + Spaceを実行すると

List<String> strs = new ArrayList<String>();
toarray

このようになる。Java5以上では最初のキャストは不要なので削除しておく。

List<String> strs = new ArrayList<String>();

(String[]) strs.toArray(new String[strs.size()])

リファクタリング

メソッド抽出

メソッドとして抽出したいコードを範囲選択して、右クリック>リファクタリング>メソッドの抽出

環境設定

JREでなくJDKを使う

Eclipseは起動時にJREを自動検出して「インストール済みのJRE」に加えてくれるため、ユーザはJREの場所を指定する必要はないが、JDKのソースをEclipseから参照したりデバッグ実行でJDKソース内部を追うことができない。

そのためJDKを登録して、それをデフォルトのVMと設定しておいた方が何かと便利。メニューからウィンドウ>設定>Java>インストール済みのJRE>追加でJDKを加え、追加したJDKにチェックを入れる。

既存のプロジェクトがJREで動作するように設定されている場合は、プロジェクトのプロパティからJavaのビルドパス>ライブラリータブ>JREシステムライブラリーを削除し、ライブラリーの追加>JREシステム・ライブラリーを選択して、追加したJDKを選択する。

日本語化

Pleiades (プレアデス)等の日本語化プラグインやパッチを入れる。Eclipse本体だけでなくプラグインの日本語化にも対応している。

行番号表示

メニューからウィンドウ>設定>一般>エディター>テキスト・エディター>行番号の表示をチェック。

エディタとエクスプローラのリンク

パッケージ・エクスプローラ・ビューの上部に両向きの矢印(「エディターにリンク」というツールチップ)があり、これにチェックを入れるとエディタで表示したファイルがパッケージ・エクスプローラでも選択された状態になる。今開いているファイルがプロジェクト上のどこにあるのかわかりやすくなる。

保存時に強制的にフォーマット

メニューからウィンドウ>設定>Java>エディター>保管アクションで、ソースファイルを保存したときに実行するアクションを選択できる(デフォルトは何もしない)。ソースのフォーマット等を実行させることができるので、忘れがちなフォーマットを自動実行させたい場合や、チーム開発においてバージョン管理システムに登録されるソースを常にフォーマットされた状態にしたい場合等に便利。

複数ソースコードのクリーンアップ

既存のソースに対して一括フォーマットやインポート編成といった様々な「クリーンアップ」処理を実行する。例えば serial version UID を全ソースに付ける必要がある場合は、このクリーンアップ機能を使うと一括で付けることができる。
対象のプロジェクトやパッケージを選択して、右クリック>ソース>クリーンアップで実行できる。クリーンアップで行う処理はメニューからウィンドウ>設定>Java>コード・スタイル>クリーンアップでカスタマイズできる。

staticインポートを補完する

Eclipseは予め登録された型に対してのみstaticインポートの補完を行う。デフォルトでは何も登録されていないので、staticインポートの補完は一切行われないが、登録すれば通常のインポートと同様にstaticインポートも補完してくれる。

メニューからウィンドウ>設定>Java>エディター>コンテンツ・アシスト>お気に入り>新規タイプで型を入力する。例えばJUnitのAssertクラスをstaticインポートするなら、org.junit.Assertを型名として入力する。ただし、この機能はEclipseの古いバージョンでは対応していないので、もし使えないなら次の「staticインポートの'*'展開を無効にする」で妥協する手もある。

staticインポートの'*'展開を無効にする

「staticインポートを補完する」が使えない場合は、メニューからウィンドウ>設定>Java>コード・スタイル>インポートの編成で、「.*(例 'java.lang.Math.*')に必要な静的インポート数を1にする。staticインポートの補完を行ってくれるわけではないが、自分で'*'を使ったstaticインポートを1つ書けば、同じクラスの別メソッドも補完できる('*'が展開されないので)。

型フィルターで不要なインポート候補を除外する

例えば次のコードを書いてインポートの補完を行う場合、

List<String> strs = new ArrayList<String>();

ArrayListはそのままインポート宣言が追加されても、Listは色々インポートの候補が表示される。Listは java.awt.List や com.sun パッケージのListなど、同名のクラスがあるため候補が表示されるが、ほとんどの場合 java.util.List でよいのに毎回聞かれるのは効率が悪い。

Listを java.util.List として認識させるためには、型フィルターで他の同名のListを候補から外せばよい。メニューからウィンドウ>設定>Java>概観>型フィルター>新規で除外したいクラスやパッケージを追加する。例えばListについては以下の2つをフィルタリングの対象にするとよい。

パフォーマンス

Eclipseのヒープサイズを増やす

eclipse.exeと同じフォルダにあるeclipse.iniを開き、-Xmxの値を増やす。ただし、この値が大きすぎるとEclipseの起動に失敗にするので、適切な値を見極めて行う。

使っていないプロジェクトを閉じる

使っていないプロジェクトを選択して右クリック>プロジェクトを閉じる。

Javadocの参照をローカルにする

ウィンドウ>設定>Java>インストール済みのJREで登録されているJRE/JDKを選択して編集>rt.jarを展開すると、Javadocロケーションとして参照する場所が設定されている。デフォルトではSUNのWebサイトにあるJavadocが参照されているので、毎回インターネットへのアクセスが発生していることになる(メソッドをマウスでポイントしたときに表示されるホバー表示時にもアクセスが発生する)。

JDKのドキュメントをダウンロードし、参照先をそのローカルファイルに変更することでネットワークアクセスによる遅延を回避できる。

キーバインド

Emacs風キーバインド

メニューからウィンドウ>設定>一般>キーの「スキーム」でEmacsを選択すると、キーバインドをEmacs風に変更できる。

EmacsキーバインドではデフォルトでCtrl + Hが削除に割り当てられてない。これを割り当てるには、ウィンドウ>設定>一般>キーの設定画面で、「バインドされていないコマンドを含む」をチェックし、スキームのすぐ下のテキストフィールドに「前を削除」と入力する。コマンド一覧に表示された「前を削除」行を選択し、バインディングを 「Ctrl + H」 とし、場合を「テキストの編集」とする。

Javadoc

Javadocコメントの生成

Javadocコメントを生成したいクラス、フィールド、メソッド宣言のすぐ上で「/**」と入力してリターンキー押下。メソッドの場合はすべてのパラメータに対する@param、戻り値があれば@return、例外をスローしていれば@throwsを付けてくれる。

Javadoc生成時にソースファイルの文字コードと出力されるHTMLの文字コードを指定する

プロジェクトを選択してメニューからプロジェクト>Javadocの生成を選択し、「次へ」を2回選択すると、VMオプションを指定するテキストフィールドがあるため、そこへ次のように記述する。

-encoding Windows-31J -docencoding UTF-8

上記はソースファイルの文字コードがWindows-31Jで、出力するHTMLの文字コードをUTF-8にする設定。

Ant

Antのドキュメント参照

各タグの属性一覧や属性の意味を参照したい場合に、タグをポイントした状態で Shift + F2 とすると、選択したタグのAntリファレンスページがEclipseの内部ブラウザで表示される。

デバッグ

条件付ブレークポイント

ブレークポイントを右クリック>プロパティ>ブレークポイント・プロパティ>条件を使用可能にする をチェックし、テキストボックスに条件を記述する。

デバッグ中に任意のコードを実行

デバッグ中に「表示ビュー」を開き、そのビューにコードを記述して任意のコードを実行することができる。コンテンツアシストも可能。現在のコンテキストから参照できる変数を利用できる。コードを範囲選択して Ctrl + U で実行する。

任意の場所で例外スロー

同じく表示ビューを使って、デバッグ中に例えば次のようなコードを記述して実行すれば例外をスローできる。

throw new Exception();

WTP

JSPのWYSIWYG編集

WTPプラグインでJSPのデフォルト・エディターは通常「JSPエディター」に設定されているが、「Webページ・エディター」で開くとWYSIWYG編集できる。デフォルトでは画面2分割でWYSIWYGエディタとソースエディタが両方表示される。どちらか一方にするといったカスタマイズも可能。

チーム開発

設定をエクスポートしてチームで共有

特にソースコードのフォーマットのような設定は開発チーム内で合わせておくとよいが、設定項目が多岐に渡る場合は設定漏れが発生したりすることもあり、時間もかかる。

そういった場合は設定をし終えたEclipseで設定をエクスポートして、他のEclipseにインポートすることで設定漏れを防ぐことができ、設定にかかる時間も削減できる。

メニューからファイル>エクスポート>一般>設定でエクスポートする。インポートはファイル>インポートで行う。


資料室へ戻る


Copyright (c) 2008 OKI Software Co., Ltd.