|
we are three eclipse operators
Eclipseの設定・操作メモです。日本語版とオリジナル版が混ざっているので、
メニュー名が日本語だったり、英語だったりします。これはいずれ統一しようと思います。
PCのJDKをver17から25に上げるとソースの日本語が文字化けする
ソースの日本語がSJISの場合、そろそろUTF-8に変換する時期ですが、
そうもいかない古いプロジェクトの場合は、プロジェクトごとにエンコーディングを設定する必要があります。
プロジェクトを右クリック⇒Properties⇒Resource⇒Text file encoding欄が
「Inherited from container(UTF-8)」になっていたら、Other:を選び、一覧にMS932かShift_JISがあればそれを選択します。
どちらもなければ、MS932とキー入力して、"The selected encoding is not supported."というエラーが出なければ
Apply and Closeボタンで保存すればOKです。
駄目であれば、Windows-31JとCP932も試します。
全部だめだったらPCに入っているJDKが非対応の可能性が高いので、
JDKのバージョンを見直すことからやり直すしかないです。
プロジェクトをインポートすると「Compiling for Java version '1.7' is no longer supported」というエラーが出る
Eclipseのバージョン4.33(2024-09)から、JDK 1.7をtarget sourceに指定できなくなりました。
したがって、JDK1.7用のソースをビルドできる最後のバージョンはその直前、4.32(2024-06)ということになります。
pom.xmlの冒頭のDTD部分で「Downloading from external resources is disabled」というエラーが出る
メニュー⇒Preferences⇒Mavenの「Download Artifact javadoc」にチェックを入れて「適用」ボタンを押せばOK。
JUnit Testを実行すると「NoClassDefFoundError: org/hamcrest/SelfDescribing」というエラーが出る
JUnit-Team公式サイトから、
hamcrest-core.jarをダウンロードして、junit.jarと同様にCLASSPATHに入れればOK。
外部ライブラリ(.jar)のビルド・パスへの追加
パッケージエクスプローラのプロジェクトを右クリック、「プロパティ」
でプロパティダイアログを出し、「Javaのビルド・パス」を選び、
「ライブラリ」タブをクリック。「外部JARの追加」
Antを使う
「ナビゲート」→「ナビゲータ・ビューで表示」を選び、ナビゲータ・ビューを表示する。
build.xmlを右クリック→「Antの実行...」
行番号の表示
「Workbench-Editors-Text Editor」-「Appearance」タブの「Show line number」にチェック。
ソースコード・フォーマッターでifブロックとelse ifを別の行にする
「Java-Code Formatter」-「New Lines」タブ
「Insert new lines in control statements」にチェック。
※昔はこのようにelse節を別の行にするのが好きでしたが、今はEclipse標準を使っています。
インデントにタブ文字を使わず、半角空白を使用
「Java」-「Code Formatter」-「Style」タブの
「Insert tabs for indentation, not spaces」のチェックを外す。
★3.1では「Java」-「Code Style」-「Formatter」タブの「Select a profile:」で、
"Eclipse"から"Java Conventions [built-in]"に変更するか、
それを元に「Editで」新しいプロファイルを作り、
詳細設定の「General settings」の「Tab policy」を"Spaces only"にします。
またそうすると、「Java」-「Editor」-「Typing」の、
「Tab key indents the current line」のチェックも外れると思いますが、
外れてなかったらここも外します。
ソースディレクトリ以下の特定のディレクトリをビルド対象外にする
「Project」メニュー-「Properties」-「Java Build Path」-「Source」タブの「Exclusion filter」を編集する。
ワークスペースを切り替える
これはEclipseの起動時のコマンドライン・オプション-dataで変更できます。
C:\Wintools2\eclipse\eclipse.exe -data c:\usr\java\eclipse-projects
|
エラーや警告が多すぎる!特定のプロジェクトの物だけを絞って表示するには?
Problems画面の右上隅の三点リーダーみたいなアイコン(View Menu)をクリック(※Filtersメニューではないです)
⇒ Showメニューを押し、「Show All」になっていたら「Errors/Warnings on Project」に変更します。
すると以降はPackage Explorerで選択したプロジェクトに関するエラーや警告だけがProblems欄に表示されるようになります。
Javaプログラムの日本語をシフトJISとUTF-8で切り替える
Windows上のEclipseでは、デフォルトでシフトJIS(正確にはMS932)になっていますが、
これをUTF-8に切り替えたいという場合の操作です。
プロジェクトを右クリック⇒「Properties」画面の一番上「Resource」の設定の中に、
「Text file encoding」という部分があり、
「Inherited from container(MS932)」が選択状態になっていると思います。
ここを「Other」に変え、プルダウンから希望のエンコーディング(ここではUTF-8)を選べばOKです。
エディタの日本語が文字化けする!
「Edit」→「Encoding」の設定があっていない場合の他に、フォントが「Courier New」
だと日本語が出ない環境があるようです。(出る環境もある)化ける場合は、
「Window」→「Preferences」→「Workbench」→「Fonts」
の「Text Font」をMSゴシックなどに変えると直ると思います。
エディタの日本語の、コメントの一部の文字だけ「□の中に?」文字に化ける
これはフォントが「Consolas」かつ、特定の文字サイズで起きるようです。
上と同じく「Text Font」をMSゴシックなどに変えると直ります。
JSPだけ文字化けする
WebアプリケーションのJavaコード、JSP、HTMLを全てUTF-8で書いているのに、JSPだけが文字化けする場合、
「Window」→「Preferences」→「General」→「Contents Type」→「Text」→「JSP」を開き、
エンコーディングがISO8859-1などになっていたらUTF-8に変更して「Update」ボタンを押し(必須)、
その後「Apply and Close」ボタンを押せば治ると思います。
ワークスペースに別のそれからプロジェクトのディレクトリをインポートする
- ディレクトリをワークスペースの下にコピーしてきます。
- メニュー File-Import-Existing Project into Workspaceを選びます。
- 新しいディレクトリを選択してFinish
.projectや.classpathを事前に編集する必要はありません。
import文が畳まれて表示されるのをやめさせたい!
「Window」→「Preferences」→「Java」→「Editor」→「Folding」の先頭のチェックを外します。
Javaコメントのスペルチェックをやめさせたい!
「Window」→「Preferences」→「Editors」→「Text Editors」→「Spelling」の先頭のチェックを外します。
不要なelse節に警告が出るのをやめさせたい!
例えば次のようなコードを書くと、
private int aaa(int n){
if(n > 0){
return 1;
} else {
return 2;
}
}
|
return 2をelse節で囲む必要はない、という警告が出ます。
確かにその通りなのですが、可読性や保守性の観点から、
else節を残すのがよい場合の方が多いと思います。
「Window」→「Preferences」→「Java」→「Compiler」→「Unused Code」
で、「Unnecessary else statement」の値を「Warning」から「Ignore」に変えます。
Organize Importsで、import文に*を使わせるには?
Eclipseの初期設定では、
同じパッケージに属する様々なクラス
(例えばjava.util.List、java.util.Vector、java.util.Iterator、java.util.StringTokenizer...)
を使っているとき、
「Organize Imports」(CTRL+SHIFT+O)すると、全てのクラスのimport文が個別に挿入され、
「import java.util.*;」のようにはしてくれません。
そのようにするには、
メニュー「Window」→「Preferences」→「Java」→「Code Style」→「Organize Imports」を開き、
「Number of imports needed for .*」
に、その数より多くの数のクラスがインポートされると*を使うようにしたいところの整数を書きます。
初期設定では99ですが、3程度にするのがよいと思います。
Serializableを実装すると警告が出る
こんなメッセージが出ます。
The serializable class *** does not declare a static final serialVersionUID field of type long
これは「Window」→「Preferences」→「Java」→「Compiler」の「Errors/Warnings」で
「Potential programming problems」の▼を押し、
「Serializable class without serialVersionUID」を
Warning から Ignore に変えれば警告が出なくなります。
external JARsの複数ファイルのパスを一括で置き換えることが多いので簡略化したい
よくある例が、Webシステムの開発で、servlet-api.jar、jsp-api.jarなどのJARファイルを
Apache Tomcatのcommon/libの下に置いていて、これをEclipseプロジェクトで参照している場合です。
Tomcatのインストールディレクトリが開発者やPCによってまちまちだったりすると、
そのたびにexternal JARsのこれらのパスを一々書き換えないといけません。
これを簡略化するのがClassPath Variableとゆーもので、
パスの一部を変数として定義しておけば、それを変更するだけで外部JARのパスを切り替えることができます。
「Window」→「Preferences」→「Java」→「Build Path」→「Classpath Variable」
に名前を「TOMCAT_HOME」、値を「C:\Program Files\Tomcat5」と設定し、
external JARsのパスを例えば「TOMCAT_HOME/common/lib/servlet-api.jar」
のようにしておけば、TOMCAT_HOMEが異なる複数のPC間でプロジェクトのフォルダをコピーしても、
プロジェクトのリビルドだけですぐに動かすことができます。
.javaファイルの新規作成時に、先頭に決まった形のコメントを入れたい
「コード・テンプレート」の機能で可能です。
メニューから
Window⇒Preferences⇒Java⇒Code Style⇒Code Templatesを選び、
Codeの+を展開してNew Java Filesを開き、Editでテンプレートを編集します。
ここには${変数名}の形で別の文字列に置き換わる変数を使うことが出来ます。
例えば、
/*
* ${file_name}
* ${date} ${user} 作成
*/
${filecomment}
${package_declaration}
${typecomment}
${type_declaration}
|
こんな感じにコメントを入れることができます。
なお、「Source」⇒「Generate Getter/Setter Method」
で自動生成するメソッドにもこのコメントを入れる場合は、その次に出てくるダイアログで、
「Generate Method Comments」にチェックを入れる必要があります。
(自動生成するGetter/Setterにコメントなんか要らんだろう、
という方はこのチェックを外せばよいです)
TortoiseSVNで履歴管理をしていたら、bin(classes)フォルダにも.svnができてしまった
SubversionのWindowsクライアント、TortoiseSVNを使ってソースフォルダを履歴管理しているとき、
Eclipseでビルドすると、ソースフォルダ内部の.svnフォルダも一緒に出力フォルダ
(binやclasses等という名前のフォルダ)
にコピーされてしまいます。
これをやめさせるには、
メニューの「Window」⇒「Preferences」⇒「Java」⇒「Compiler」⇒「Building」を開き、
「Output Folder」の▼を開いて、「Filtered Resources:」
が初期値は「*.launch」となっているので、カンマで区切って
「*.launch, .svn/」と書き足します。末尾のスラッシュはフォルダであることを指定します。
間に空白を入れてもOKです。
ApplyまたはOKを押すと「フルリビルドするか?」というダイアログが現れるので、
ここでYesを選べば、もし出力フォルダに.svnが作られていたとしても、
リビルドが終わったら削除されています。
Eclipseを実行しているJava VM(JRE)のパスとバージョンを確認する
Help ⇒ About Eclipse Platform ⇒ Configuration Details
を押して出てくるウィンドウの「eclipse.vm=」の行などを見ればほんのり分かると思います。
JDK6上で動かしているEclipseで、J2SE 1.4 VM用の.classファイルを作る
一般にJavaでは、.classファイルを生成したコンパイラより古いバージョンのJava VMでは、
java.lang.UnsupportedClassVersionErrorとなり、動かすことができません。
しかしEclipseでは、Eclipse自身を動かしているJavaのバージョンより低いバージョンの
Java VMで動く.classファイルを作ることが可能です。
方法はプロジェクトを右クリック⇒「Properties」⇒「Java Compiler」を選び、
「Use Compliance from execution environment」
のチェックをはずし、
「Compiler Compliance Level」を1.6から1.4に変えればOK。
Eclipse 3.5(Galileo)なら、1.3〜1.6の範囲で選べます。
このときに、例えばJDKやJREのバージョン1.3や1.5をインストールしていなくても、
1.3や1.5の互換レベルでコンパイルすることも可能です。
なお、この設定を変えるとプロジェクト単位で総リビルドするか確認されます。
CTRL+SPACEの補完が効かなくなった、または同じ候補が二つずつ重複して出るようになった
何かの拍子に設定が変わってしまうみたいです。
「Window」⇒「Preferences」⇒「Java」⇒「Editor」⇒「Contents Assist」⇒「Advanced」
で「Java Proposals」にチェックを入れれば治るはず。
わけわからなければ、とりあえず「初期設定に戻す」ボタンで戻してもOK。
Eclipseからプログラムを実行するときのJava VMオプションの指定方法
「Run Configuration」の(x)=Argumentsの「VM arguments」内に-Dなどのオプションを入力すればOK。
例えば、SSL通信のデバッグ情報を表示するには、「-Djavax.net.debug=ssl」
と入力すればOKです。
コンパイルはできるのに、Eclipseで実行するとサードパーティのjar内のクラスでNoSuchMethodErrorが発生する
プロジェクトのビルドパスを見て、他のプロジェクトを参照していて、
他のプロジェクトが同じjarの古いバージョンを参照していたりすると、
そちらが優先されてしまい、新しいバージョンでサポートされたメソッドがないとこの現象が起きます。
依存関係のあるプロジェクト間では、ビルドパスのjarも統一するようにしましょう。

(first uploaded 2003/09/07 last updated 2026/09/05, MISUMI URANO - YUKO AMEMIYA)
|