エディタ上で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を生成するか選択できる。
エディタ上で右クリック>ソース>フィールドを使用してコンストラクターを生成。オブジェクト生成時にすべてのフィールドを初期化するコンストラクタが作られる。
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()])
メソッドとして抽出したいコードを範囲選択して、右クリック>リファクタリング>メソッドの抽出
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>コード・スタイル>クリーンアップでカスタマイズできる。
Eclipseは予め登録された型に対してのみstaticインポートの補完を行う。デフォルトでは何も登録されていないので、staticインポートの補完は一切行われないが、登録すれば通常のインポートと同様にstaticインポートも補完してくれる。
メニューからウィンドウ>設定>Java>エディター>コンテンツ・アシスト>お気に入り>新規タイプで型を入力する。例えばJUnitのAssertクラスをstaticインポートするなら、org.junit.Assertを型名として入力する。ただし、この機能はEclipseの古いバージョンでは対応していないので、もし使えないなら次の「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.exeと同じフォルダにあるeclipse.iniを開き、-Xmxの値を増やす。ただし、この値が大きすぎるとEclipseの起動に失敗にするので、適切な値を見極めて行う。
使っていないプロジェクトを選択して右クリック>プロジェクトを閉じる。
ウィンドウ>設定>Java>インストール済みのJREで登録されているJRE/JDKを選択して編集>rt.jarを展開すると、Javadocロケーションとして参照する場所が設定されている。デフォルトではSUNのWebサイトにあるJavadocが参照されているので、毎回インターネットへのアクセスが発生していることになる(メソッドをマウスでポイントしたときに表示されるホバー表示時にもアクセスが発生する)。
JDKのドキュメントをダウンロードし、参照先をそのローカルファイルに変更することでネットワークアクセスによる遅延を回避できる。
メニューからウィンドウ>設定>一般>キーの「スキーム」でEmacsを選択すると、キーバインドをEmacs風に変更できる。
EmacsキーバインドではデフォルトでCtrl + Hが削除に割り当てられてない。これを割り当てるには、ウィンドウ>設定>一般>キーの設定画面で、「バインドされていないコマンドを含む」をチェックし、スキームのすぐ下のテキストフィールドに「前を削除」と入力する。コマンド一覧に表示された「前を削除」行を選択し、バインディングを 「Ctrl + H」 とし、場合を「テキストの編集」とする。
Javadocコメントを生成したいクラス、フィールド、メソッド宣言のすぐ上で「/**」と入力してリターンキー押下。メソッドの場合はすべてのパラメータに対する@param、戻り値があれば@return、例外をスローしていれば@throwsを付けてくれる。
プロジェクトを選択してメニューからプロジェクト>Javadocの生成を選択し、「次へ」を2回選択すると、VMオプションを指定するテキストフィールドがあるため、そこへ次のように記述する。
-encoding Windows-31J -docencoding UTF-8
上記はソースファイルの文字コードがWindows-31Jで、出力するHTMLの文字コードをUTF-8にする設定。
各タグの属性一覧や属性の意味を参照したい場合に、タグをポイントした状態で Shift + F2 とすると、選択したタグのAntリファレンスページがEclipseの内部ブラウザで表示される。
ブレークポイントを右クリック>プロパティ>ブレークポイント・プロパティ>条件を使用可能にする をチェックし、テキストボックスに条件を記述する。
デバッグ中に「表示ビュー」を開き、そのビューにコードを記述して任意のコードを実行することができる。コンテンツアシストも可能。現在のコンテキストから参照できる変数を利用できる。コードを範囲選択して Ctrl + U で実行する。
同じく表示ビューを使って、デバッグ中に例えば次のようなコードを記述して実行すれば例外をスローできる。
throw new Exception();
WTPプラグインでJSPのデフォルト・エディターは通常「JSPエディター」に設定されているが、「Webページ・エディター」で開くとWYSIWYG編集できる。デフォルトでは画面2分割でWYSIWYGエディタとソースエディタが両方表示される。どちらか一方にするといったカスタマイズも可能。
特にソースコードのフォーマットのような設定は開発チーム内で合わせておくとよいが、設定項目が多岐に渡る場合は設定漏れが発生したりすることもあり、時間もかかる。
そういった場合は設定をし終えたEclipseで設定をエクスポートして、他のEclipseにインポートすることで設定漏れを防ぐことができ、設定にかかる時間も削減できる。
メニューからファイル>エクスポート>一般>設定でエクスポートする。インポートはファイル>インポートで行う。