2009-04-28

run GWT 1.6.x using 64-bit eclipse on 64-bit architecture


64-bit architectureを使っていると色々と面倒なことが多いです。が、大抵の場合はなんらかの対処法を誰かしらが実践しているので、頑張れば結構どうにかなります。今日はGoogle Web Toolkitを64-bit architectureで動かす方法について書きます。

僕が調べた限りでは、動かす方法は、大きくわけて2つあります。
1. eclipse 32-bit ver. を使って動かす。
2. eclipse 64-bit ver. に32-bit用のjreをインストールさせて動かす。

GWTのdiscussionでは、わりと1.の解決策を挙げている人が多いようですが、正直なところ、GUIがバグったり、どこでどうエラーが出ているのか明白でなかったりと、個人的にはかなり使いづらかったと感じています。それに比べて2.は上述のキャプチャにもあるように、GUIもはっきり描画されていて、エラー内容はほぼ全て64-bit命令にのみ集約されているので、この部分だけどうにかしてやればなんとか使えそうです。

というわけで、2.の解決策について書きます。参考にしたサイトは、以下のサイトです。
http://theworldofapenguin.blogspot.com/2008/05/google-web-toolkit-in-linux-64-bit.html

具体的な手順は上述のサイトを見ると分かるので、大まかな手順だけを書くと、以下のようになります。
1. jre 32-bit(self-extracting file)をダウンロードする。
http://www.java.com/en/download/manual.jsp

2. ダウンロードしたファイルを/opt/に移動させ、"sudo sh /opt/ダウンロードしたファイル名"でjreをインストール。

3. eclipse 64-bit ver.を起動し、window menu->preferences->java->installed JREsで、インストールしたjreを指定&チェック。

4. Project Explorer内のGWTプロジェクトを右クリック->properties->RUN/Debug Settings->プロジェクト名クリック->edit->JREタブをクリック->Alternate JRE->インストールしたJREを指定。

5. GWT projectを起動。

細かい部分はだいぶ端折りましたが、これで僕は動きました。

ただし、問題はまだ残ってます。問題とは、上述のキャプチャが示すように、警告が出力されていることです。この警告の内容が示すように、現在64-bit版のfirefox(iceweasel)+pluginを使っているため、GWTのデバッグ用browswerでは動作するけど、Complile/Browseしたときは動作しませんorz

tango! on GAEもやりたいし、今後ともGWTにはお世話になるつもりでいるので、いずれこの問題も解決させます。

とりあえず今日はここまで。ではでは。

追記:エラー内容

(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
(GWT:4334): Gtk-WARNING **: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so: wrong ELF class: ELFCLASS64
The server is running at http://localhost:8080/
LoadPlugin: failed to initialize shared library /home/yohei/.mozilla/plugins/libflashplayer.so [/home/yohei/.mozilla/plugins/libflashplayer.so: wrong ELF class: ELFCLASS64]

0 件のコメント: