{{category Java,nolink}}Java Web Start の実行環境作成など
!!!Java Web Start
Java Web Start は、WEBブラウザなどで特定のURLにアクセス・クリックすることで Java アプリケーションを起動する仕組みです。これにより複雑なインストール作業を行わずとも、簡単にダウンロードし起動することが出来るようになる。
Java Web Start では、クリックするだけでアプリケーションを起動する。そのアプリケーションに必要なファイルがない場合は、Java Web Start によって必要なすべてのファイルが自動的にダウンロードされる。ダウンロード後は、ファイルがキャッシュされ、デスクトップ上のアイコンかブラウザ上のリンクを使って、いつでも起動できるようになる。また、いずれの方法で起動しても常に最新のバージョンのアプリケーションが起動される。
*Java Web Start
**http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/index.html
!!!Java Web Start の配備
詳しくは、[Java Web Start 開発者 ガイド|http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/developersguide/contents.html] を参照。
!!Web サーバー
!MIME タイプの設定
サーバーを設定して、拡張子「.jnlp」のファイルの MIME タイプが「application/x-java-jnlp-file」とされるように設定する。
サーバが MIME タイプを返さなかったり、ブラウザが各コンテンツの処理方法を正しく判断できない場合、Java Web Start は起動されません。
!ファイルの配置場所
一連の JAR ファイル、JNLP ファイル、起動用ページを URL でアクセス出来る場所に配置する。
!!アプリケーションの JAR ファイル
アプリケーションのクラスファイルなどは、JAR ファイルで配信される必要がある。また、イメージなどのリソースファイルも JAR ファイル内に格納する必要がある。よって、JAR 内のリソースにアクセス出来るように作る必要がある。
また、通常は、安全なサンドボックス内で実行されるため、ローカルディスクにアクセス出来ないなどいくつか制限がある。これらの制限をなくす場合は、署名付き JAR ファイルとして配信され、JNLP ファイル内に以下の記述を追加して、完全なアクセスを要求出来るようにする必要がある。
!署名付き JAR ファイル
認証局から発行される証明書(もしくは、テスト用の証明書)をもつキーストアを用意し、jarsigner コマンドを使って以下の様に「署名付き JAR ファイル」を作成します。
jarsigner -keystore <キーストアのパス> <署名するJAR> <エイリアス>
!!アプリケーションの JNLP ファイル
詳細は、[JNLP ファイルの構文|http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/developersguide/syntax.html] を参照。
!!アプリケーション起動用ページ
ある Web ページから JNLP 経由でアプリケーションを起動するには、そのページ内に JNLP ファイルへのリンクをはる。
ただし、起動するコンピュータに Java (Java Web Start) がインストールされていない場合がある。そうした場合に、JRE のダウンロード・インストールをするように表示ような仕組みが必要となる。
詳細は、[アプリケーション起動用 Web ページの作成|http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/developersguide/launch.html] を参照。
!Java Web Start がインストールされているかどうかを確認する
{{code HTML,4,
}}
このスクリプトは、navigator.mimeTypes オブジェクトとその変数 navigator.mimeTypes.length を検索して、navigator.mimeTypes 配列が定義・設定されている場合は、JNLP MIME タイプの存在をチェックします。navigator.mimeTypes 配列がない(IEは配列は定義されているが要素は空である)場合で、ActiveXObject 関数がある(つまりIE)場合は、JavaWebStart.isInstalled のCOMコンポーネントのインスタンスが作成出来るかをチェックします。
※この方法、IE6, Firefox 3.6, Opera 10, Safari 4 (いずれも Windows版のみ) で試したが、Safari がJava がインストールされている環境でも 'application/x-java-jnlp-file' のMIME タイプが定義されていない。
!Java Web Start の起動用ページ
{{code HTML,4,
}}
Java Web Start がインストールされている (javawsInstalled = 1) 場合には、起動用の jnlp ファイルへのリンクを表示する。
また、インストールされていない場合は、Java のダウンロードページのリンクを表示してダウンロードおよびインストールをするように促す。
さらに、JavaScript が無効にされている場合には、各自で確認するように促し、起動用のリンクを表示する。
サンプル:{{ref launch.html}}
!PluginBrowserCheck
開発者ガイドにある、PluginBrowserCheck は、ブラウザが Microsoft Windows の Internet Explorer であるかを判断し、そうである場合は pass の、そうでない場合は、fail で指定したリンク先へリダイレクトされる。
ちなみに、pass および fail を指定しなかった場合、Internet Explorer と Firefox/Mozilla はそれぞれのダウンロードページが表示され、それ以外(Opera 10, Safari 4)では、ダウンロード一覧のページが表示される(いずれも Windows版)。
!!JNLP ダウンロードサーブレット
詳細は、[JnlpDownloadServlet ガイド|http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/developersguide/downloadservletguide.html] を参照。