2005年02月09日
Java Web Start
仕事でJavaのGUIアプリケーションを作成することが多い。
アプリの配布やバージョンアップがめんどくさいのでJava Web Startを使うことにする。
Java Web Startの詳細は以下
Java Web Startガイド
JNLPの構文はとてもとても参考になる。
SWTでJava Web Startを行う場合、いいサンプルがあるので参考にする。
Java Web Startを使用して、SWTアプリケーションを配置する
このサンプルではantを実行すると自動でwarファイルが作成されるが、別にwarにする前のjarやjnlpをそのままwebに乗せても行けそうだ。
詳細をすべて書くとかなり長くなるので要点だけ。参考先サイトのサンプルFile Viewerを元にしてアプリを配布する。
1, 自己署名証明書の作成
サンプルにあるとおりにする。
2, SWTのライブラリを用意する
サンプルにあるのは2.1用なので3.0.1用のライブラリを準備する。
lib.propertiesにeclipse.version = 3.0.1とし、lib\eclipse-3.0.1\lib以下にwindows、unixなどのフォルダを作成してその中にSWTのライブラリを配置する。
それぞれのOSのSWTライブラリ名が同じだとdistのフォルダにまとめて置けないのでswt-win32.jarなどと名前がかぶらないように変更しておく。
3, ライブラリに署名するタスクを追加する
<copy file="${eclipse.dir}/jface.jar" todir="${dist.dir}"/>
<signjar jar="${dist.dir}/jface.jar" keystore="${keystore}" alias="myself" storepass="password"/>
のような感じで使用するjarすべてに署名しておく。
jarsignerにパスを通しておかないとsignjarで失敗するっぽい。
4, とりあえずコンパイル
成功したらant runで起動するか確認。
5, JNLPファイルを編集
適当に表示させる文字列など変更。
<jar href="jface.jar"/>などを追加してjarライブラリを追加する。
<application-desc main-class="myAppStartClass"/>にスタートするClass記述。
<j2se version="1.5"/>にJavaのバージョンを記述。
1.5しか入っていない環境で1.4とか書くと自動で古いバージョンもインストールしてくれる。便利。
1.4+と書くと1.5しか入っていない環境だと1.5のJREでうごくっぽい。
JWS経由で実行したときに起動時にcom.sun.javaws.Launcher.continueLaunchでExceptionが発生する場合は<jar href="jface.jar"/>などでライブラリが足りない可能性。
6, ビルド
antと書けば自動でwarまで作成する。
できたwarをtomcatのwebappsにコピーしてちょっと待てば勝手に展開してくれる。
後はjnlpファイルにアクセスすれば自動でダウンロード&起動する。ハズ。
"Java Web Start"へのコメントはまだありません。