Java のコードを書く時に Eclipse を使ってるんだけど、起動中にエラーが起きて「ワークベンチ UI がリセット」される、という現象が起きていた。
原因をちょっとだけ調べたのでメモ。
環境
Windows XP SP2 + Java 1.4.2 + Eclipse 3.0.2 + DBViewer Plugin 0.1.9
ちなみに DBViewer Plugin は、下記サイトで配布されている。いつもお世話になってます。
- DBViewer Plugin for Eclipse
- http://www.ne.jp/asahi/zigen/home/plugin/dbviewer/about.html
現象
Eclipse を起動すると、下記ページで紹介されているようなエラーが表示されて、ワークベンチ UI レイアウト……つまり、開いてたパースペクティブやビューなんかの状態が、初期状態に戻ってしまう。
- えらーだらけ。- ワークベンチの状態を読み取ることができません。ワークベンチ UI レイアウトはリセットされます。
- http://madonnalily.blog49.fc2.com/blog-entry-26.html
調べ方
このメッセージは、起動中にレイアウトを復元しようとしたら何らかのエラーが発生したことを示している。
ログ (ワークスペースディレクトリ配下の .metadata/.log にあるファイル) を見ると、スタックトレースが出ている。
今回の場合
前からうすうす「DBViewer パースペクティブを開いた状態で終了すると、次に起動した時に上記のエラーが発生する」ような気がしていた。いろいろパターンを試してみると、どうやら「SQL 実行ビュー」が発火元になっている様子。
ログを見ると、下記ページに載っているのと同じスタックトレースが。
- 外部記憶装置 - Windowsのスタイル変更が原因でSWTが落ちる
- http://rainbowdevil.jp/mt/externalstorage/archives/2005/07/windowsswt.html
フォント周りがあやしいということで設定をいじってみると、再現手順がわかった。
- Eclipse のメニューから [ウィンドウ]→[設定] を選ぶ。
- ダイアログが開いたら、ツリーの [ワークベンチ]→[エディター]→[色とフォント] を選ぶ。
- [基本]→[テキスト・フォント] を、"MS ゴシック" の 8 ポイントにし、[OK] を押してダイアログを閉じる。
- 再度メニューから [ウィンドウ]→[ビューの表示]→[その他] を選ぶ。
- ダイアログが開いたら、[DBViewer・プラグイン]→[SQL実行・ビュー ] を選び、[OK] を押す。
- Eclipse を一旦終了する。
- Eclipse を起動すると、エラーが発生し、レイアウトがリセットされる。
というわけで、とりあえずの回避策は "MS ゴシックを使う場合は、8 ポイントを使わない" だった。
ちなみに
バージョンを新しくした環境 (Windows XP SP2 + Java 5.0 + Eclipse 3.2.0 + DBViewer Plugin 0.2.0) にすると、上記のエラーは出ないようだ。
そのかわり、[基本]→[テキスト・フォント] の設定を変えても、行番号部分のフォントが変わらない。Eclipse に標準で入っている Java エディタの場合は、本文のフォントに合わせて行番号も変わるようなので、何か違いがあるのかもしれない。
……というところで力尽きた。続きはそのうち。