eclipse

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

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

Web アプリケーションのプロジェクトをつくる

詳細は以下で。

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