{{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] を参照。