Hello JWS
というわけで、Hello JWSです。
環境設定
必要な環境としては、JavaWebStartのランタイム?が必要です。
でも、JDK1.4にははじめから付いてるので、それを使うことにしました。
JDK1.4をインストールすると勝手にデスクトップにJavaWebStartの
ショートカットが作られるのが、昔はうざいと思いましたが、
最初から同梱されてるのはやっぱ便利っすね。
手順概要
開発者ガイド
にそって、設定をすすめました。
"Web サイトの設定"の記述を抜粋すると以下のような手順になります。
- Java Web Start の MIME タイプを使用するように Web サーバを構成する
- アプリケーション用の JNLP ファイルを作成する
- アプリケーションを Web サーバからアクセス可能にする
- Web ページから JNLP ファイルへのリンクを作成する
必要なファイルは以下のようになります。
ここではWebアプリケーション用に配置していますが、
ただのHTTPサーバーでも動きます。
jwsはWebアプリケーション名です。
※最低限必要なファイルはjarとjnlp、あとMIME-TYPEの設定が必要ってことになります。
webapps/
jws/
hello.jar …アプリケーションを含むJAR
hello.jnlp …設定ファイル
hello.html …リンク元のHTML
WEB-INF/
web.xml …JNLPのMIMEタイプを定義
0. アプリケーションを作る
上の手順はWebサイトの設定なんで、その前に実行するアプリケーションを
作成しましょう。
ここでは簡単な(HelloJWSと表示するラベルを張るだけの)Swingアプリケーションを作成します。
コンパイルして、mainから実行可能です。
import javax.swing.*;
public class HelloJWS extends JFrame{
public HelloJWS(){
JLabel label = new JLabel("HelloJWS");
getContentPane().add(label);
pack();
setVisible(true);
}
public static void main(String argv[]){
HelloJWS frame = new HelloJWS();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
作成した.classをJarにパッケージします。ここではhello.jarを作成します。
jar cf hello.jar .
1.MIMEタイプの設定
JNLPのMIMEタイプを設定します。
Apacheの例) .htaccessに記述
AddType application/x-java-jnlp-file jnlp
Tomcatの例) web.xmlに記述
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
ここでは、web.xmlで設定しました。
2.アプリケーション用の JNLP ファイルを作成する
hello.jnlpというファイルを作成します。
中身はXML形式で、以下のように記述します。
codebaseの値などは自分の環境に書き換える必要があります。
<jnlp
spec="1.0+"
codebase="http://localhost:8080/jws"
href="hello.jnlp">
<information>
<title>Hoge Test</title>
<vendor>miya</vendor>
<offline-allowed/>
</information>
<resources>
<j2se version="1.4"/>
<jar href="hello.jar"/>
</resources>
<application-desc main-class="HelloJWS"/>
</jnlp>
3.アプリケーションを Web サーバからアクセス可能にする
さっき作ったhello.jarをクライアントからアクセス可能な場所にコピーします。
WEB-INFの下に置いたらアクセスできません。
ここでは、コンテキストルートにおきます(上のファイルの配置参照)。
4.Web ページから JNLP ファイルへのリンクを作成する
アプリケーションへのリンク元のHTMLを作成します。
hello.htmlというファイルを作成します。
<html>
<body>
<h2>Java Web Startのテスト</h2>
<a href="hello.jnlp">Hello JWS</a>
</body>
</html>
ブラウザで.jnplファイルのURLを直打ちすれば、このファイルは不要です。
でもHTMLからリンクで起動できることを体感するために、作っときましょう。
実行する
Webサーバーを起動し、ブラウザで先ほどのhello.htmlにアクセスします。
私はほぼデフォルト設定ママのTomcatを使い、上の位置にファイルを置いて、以下にアクセスしました。
http://localhost:8080/jws/hello.html
リンクをクリックすると、
Java Web Startアプリケーションが実行できましたね?
しょぼいけど。
サーバに置いてみた
ローカルで実験してたんですが、
考えてみると、普通にHTTPサーバで動くんだったら、
muimi.comでもファイル置けば、動くじゃん。
ということで、置いてみました。
前に述べた必要なファイルはここにあります。
hello.htmlから実行できます。
JNLPがブラウザで見ると、XMLで表示されちゃう!という人は、
MIME-TYPEの設定がうまく行っていません。
あと、設定は正しいはずだ、という人は一度ブラウザのキャッシュ
を消してみましょう(←これで30分ハマった)。
参考
ASAHI-Net - 最新拡張子(MIME Type)一覧
ミケネコの htaccess リファレンス
Arkレビュー:番外編3
(2002/8/4)
もどる