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ファイルにアクセスすれば自動でダウンロード&起動する。ハズ。

Comment on "Java Web Start"

"Java Web Start"へのコメントはまだありません。

Post a Comment

コメントする

コメント登録機能が設定されていますが、TypeKey トークンが設定されていません。