eclipse

eclipse とは、Java プラグイン開発を目的としてつくられたフリーの統合開発環境。 もともとIBM社で開発されていたらしいが、現在はオープンソースとなっている。

コンパイラやプラグインさえ導入すれば、Java以外の言語も扱うことができる。 フリーなのに、Microsoft Visual Studio などの環境に匹敵する機能を持っており、 リファクタリングなど、VS にはない便利な機能も備えている。

Eclipse の罠

作業をしていてぶち当たった問題とその解決方法をメモ。

Eclipse のバージョン

Eclipse には、いろいろ便利なプラグインがつくられているが、 これは、eclipse 本体のバージョンとあっていないと、ほぼ動かない。 つまり、上位互換になっていない。 (古いバージョンで対応しているプラグインが、 最新バージョンの eclipse 本体で動くかといえば、 そうとは限らないということ。)

特に、バージョン 3.1 と 3.2 は、 内部がガラリと変わっているらしい(私は確認してないけど)。

プラグインは、 対応した本体のバージョンを確認してダウンロード、インストールすること。

ソース添付がないというビルドエラー

次の理由でビルドに失敗する。

 ソースが見つかりませんでした。
 JARファイルrt.jarにソース添付がありません。

これは、「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」で 使用しているJREを選択して「編集」。表示されたリストから rt.jar を選択して「ソース添付」で「(JAVA_HOME)\src.zip」を指定すれば良い。

例えば、

C:\Program Files\Java\jdk1.5.0_07\src.zip

とか。

Tomcat 6.0 プラグインのバージョン設定

Eclipse 3.2 系と Tomcat 6.0 プラグイン (Eclipse 3.2 に対応してるのは tomcatPluginV32beta2 または beta3 - 2007/02/13 16:02 現在 )との組み合わせで、「ウィンドウ」→「設定」→「Tomcat」の Tomcat のバージョン選択で「6.x」を選択すると、コンテキスト宣言モードのコンテキストディレクトリが「\webapps」にデフォルト設定されるのだけど、これだとうまく動かない。

ここは「5.x」の設定時と同じく「\conf\(Catalina)\(ホスト名)」の設定にする。

C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost

とか。

ただ、5.x と同じ設定なのはここだけで、Tomcat 6.x 系を使用する場合は、 バージョン選択では「6.x」を選択しておく必要がある(ライブラリの参照位置とかが 5.x と 6.x とでは違う)。

Tomcat 6.0 起動/終了

Eclipse から Tomcat を起動しても、Tomcat Configure のステータスが開始(Start)にならない(Stopped のまま)。しかし、実際は(デバッグモードで?)起動している。Eclipse でブレークポイントを設定してトレースする場合は、Tomcat Configure で起動してもトレースできない。Eclipse から起動する。

Eclipse で Tomcat を起動したときに、Configure Tomcat で操作(起動/停止)するとおかしなことになる。その逆も然り。Eclipse で起動したら Eclipse で停止すること。

ちゃんと、連動すればいいのになぁ。。。

HTML Editor プラグインの起動が遅い件

Amateras HTML Editor で DOCTYPE を記述すると、保存と展開にかなり時間がかかる。

例えば、

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

(以下 XML 本文...)

のように、外部 DTD を参照させたときに時間がかかっているかも。(この記述があると、接続状況によっては Eclipse がフリーズしたようになるが、根気よく待てば、ちゃんと開かれる。)

ちなみに、プロキシの設定が正しくないと、外部に接続できず、タイムアウトするまで Eclipse が固まってしまう。プロキシの設定は、「ウィンドウ」→「設定」→「インストール/更新」ページの「プロキシの設定」。

taglib 設定でエラーが出る件

環境

taglib をちゃんと設定しているにも関わらず、Eclipse(Amateras?) がエラーを吐く。

具体的には、次の通り。

WEB-INF の下に tld ファイルをインポートして、 web.xml に、taglib のロケーションを記述。( web.xml は WEB-INF の下に配置。)

<taglib>
   <taglib-uri>/tags/struts-bean</taglib-uri>
   <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
   <taglib-uri>/tags/struts-html</taglib-uri>
   <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
   <taglib-uri>/tags/struts-logic</taglib-uri>
   <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

JSP ファイルの先頭に、この taglib を記述。

<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

以上は正しい設定(のはず)。

これで、このJSPに、例えば、

<html:html>

  (HTMLの内容)

</html:html>

のように記述して("html:html" は tld で定義されている)保存(Ctrl+S)すると、 Eclipse が次のエラーを出力する。

"html"に対応するtaglibディレクティブが存在しないか tld ファイルが見つかりません

あるっちゅうねん!

実際、これでもJSPはちゃんと動く。 Eclipse がエラーだと誤認しているだけなんだけど、このままだと非常に気分が悪い。

どうやら、ワークスペースをコンテキストのルート以外のところにするとこうなるらしい。 (コンテキストのルート配下にサブディレクトリを作って、そこにJSPやWEB-INFを作ってる場合など。)

これを解決するには、 「プロジェクト」→「プロパティ」→「Amateras」の「ルート」というところに、 作業をしているサブディレクトリのパスを書く。

例えば、「webapp」というコンテキストディレクトリの下に 「AppTop?」というサブディレクトリを作って、その下にWEB-INFなどを配置している場合は、 ルートに「/AppTop?」と書いておく。

これで「適用」或いは「OK」をしても、なぜかエラーは出っ放しなので、 いったん Eclipse を閉じて、再度開きなおす。 で、問題のJSPファイルを開けば、エラーは解消されるはず。

構成に問題があるプラグイン

きっかけは解らないが、ときどき、既に入れているプラグインにエラーが発生して、 新たなプラグインがインストールができなくなることがある。

例えば、これ。

要求された操作は現在の構成には無効であるため、実行できません。 
詳しくは詳細を参照してください。
Hibernate Tools (3.2.0.beta9a) 必須: プラグイン
"org.eclipse.wst.common.project.facet.core (1.1.0)"、
またはそれ以降のバージョン。

この場合、既にインストールしてある Hibernate Tools プラグインにエラーがある為、 新たなプラグインがインストールできない。

考えられるのは、

いずれにしろ、このままだと新たなプラグインが入れられない。

対処
とりあえず、問題になっているのが当面使わないプラグインであれば「無効」にする。

  1. 「ヘルプ」→「ソフトウェア更新」→「構成の管理」を選択。
  2. ツリーを展開して、問題のプラグインを選択して「使用不可にする」を選択。
  3. 現在の構成に問題が起こるかもしれないという旨のメッセージが出て脅されるけど、 とりあえずそれを使っていなければ問題ない。 また、問題が出た場合は、同じダイアログで直前の構成に戻すこともできる(はず)。
  4. 完了したら Eclipse の再起動を促されるので、そのまま再起動する。
  5. 「以前の環境を復元できなかった」という旨のメッセージが出るが、動作自体に問題はない。(Hibernate Tools の場合は Hibernate のパースペクティブがなくなる。)

この場合、無効にしたプラグインを有効に戻そうとすると、同様のエラーが出て戻すことができないので、 だましだましでもそのプラグインを使いたい場合は、ちょっと覚悟が必要。

だれかこの問題解決してくれてないかなぁ。

外部リンク


プログラム・開発系メモ


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS