INDEX
Java Web Start の実行環境作成など
Java Web Start
Java Web Start は、WEBブラウザなどで特定のURLにアクセス・クリックすることで Java アプリケーションを起動する仕組みです。これにより複雑なインストール作業を行わずとも、簡単にダウンロードし起動することが出来るようになる。
Java Web Start では、クリックするだけでアプリケーションを起動する。そのアプリケーションに必要なファイルがない場合は、Java Web Start によって必要なすべてのファイルが自動的にダウンロードされる。ダウンロード後は、ファイルがキャッシュされ、デスクトップ上のアイコンかブラウザ上のリンクを使って、いつでも起動できるようになる。また、いずれの方法で起動しても常に最新のバージョンのアプリケーションが起動される。
Java Web Start の配備
詳しくは、Java Web Start 開発者 ガイド を参照。
Web サーバー
MIME タイプの設定
サーバーを設定して、拡張子「.jnlp」のファイルの MIME タイプが「application/x-java-jnlp-file」とされるように設定する。サーバが MIME タイプを返さなかったり、ブラウザが各コンテンツの処理方法を正しく判断できない場合、Java Web Start は起動されません。
ファイルの配置場所
一連の JAR ファイル、JNLP ファイル、起動用ページを URL でアクセス出来る場所に配置する。
アプリケーションの JAR ファイル
アプリケーションのクラスファイルなどは、JAR ファイルで配信される必要がある。また、イメージなどのリソースファイルも JAR ファイル内に格納する必要がある。よって、JAR 内のリソースにアクセス出来るように作る必要がある。
また、通常は、安全なサンドボックス内で実行されるため、ローカルディスクにアクセス出来ないなどいくつか制限がある。これらの制限をなくす場合は、署名付き JAR ファイルとして配信され、JNLP ファイル内に以下の記述を追加して、完全なアクセスを要求出来るようにする必要がある。
<security> <all-permissions/> </security>
署名付き JAR ファイル
認証局から発行される証明書(もしくは、テスト用の証明書)をもつキーストアを用意し、jarsigner コマンドを使って以下の様に「署名付き JAR ファイル」を作成します。
jarsigner -keystore <キーストアのパス> <署名するJAR> <エイリアス>
アプリケーションの JNLP ファイル
詳細は、JNLP ファイルの構文 を参照。
アプリケーション起動用ページ
ある Web ページから JNLP 経由でアプリケーションを起動するには、そのページ内に JNLP ファイルへのリンクをはる。
ただし、起動するコンピュータに Java (Java Web Start) がインストールされていない場合がある。そうした場合に、JRE のダウンロード・インストールをするように表示ような仕組みが必要となる。
詳細は、アプリケーション起動用 Web ページの作成 を参照。
Java Web Start がインストールされているかどうかを確認する
1 |
<script type="text/javascript">
<!--
var javawsInstalled = 0;
if ( navigator.mimeTypes && navigator.mimeTypes.length ) {
var mime = navigator.mimeTypes['application/x-java-jnlp-file'];
if ( mime ) {
javawsInstalled = 1;
}
} else if( typeof ActiveXObject == "function" ) {
var jws = new ActiveXObject("JavaWebStart.isInstalled");
if ( jws ) {
javawsInstalled = 1;
}
}
// -->
</script> |
このスクリプトは、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 の起動用ページ
1 |
<script type="text/javascript">
<!--
if ( javawsInstalled ) {
document.write('<a href="http://www.example.com/app.jnlp">Launch the application</a>');
} else {
document.write('<span class="notice">JRE is not installed in your personal computer. ');
document.write('Please download and install JRE. And launch the application. </span>');
document.write('<br /><br />');
document.write('The latest version of JRE is downloadable from ');
document.write('<a href="http://java.com/ja/download/index.jsp" target="_blank">java.com</a>.');
document.write('<br /><br />');
document.write('<a href="http://www.example.com/app.jnlp">Launch the application</a>');
}
// -->
</script>
<noscript>
<span class="notice">Please confirm system requirements, and execute application.
(A setting of JavaScript is invalid.)</span><br />
<a href="http://www.example.com/app.jnlp">Launch the application</a>
</noscript> |
Java Web Start がインストールされている (javawsInstalled = 1) 場合には、起動用の jnlp ファイルへのリンクを表示する。また、インストールされていない場合は、Java のダウンロードページのリンクを表示してダウンロードおよびインストールをするように促す。さらに、JavaScript が無効にされている場合には、各自で確認するように促し、起動用のリンクを表示する。
サンプル:launch.html(676)
PluginBrowserCheck
開発者ガイドにある、PluginBrowserCheck は、ブラウザが Microsoft Windows の Internet Explorer であるかを判断し、そうである場合は pass の、そうでない場合は、fail で指定したリンク先へリダイレクトされる。
ちなみに、pass および fail を指定しなかった場合、Internet Explorer と Firefox/Mozilla はそれぞれのダウンロードページが表示され、それ以外(Opera 10, Safari 4)では、ダウンロード一覧のページが表示される(いずれも Windows版)。
JNLP ダウンロードサーブレット
詳細は、JnlpDownloadServlet ガイド を参照。
最終更新時間:2010年01月26日 16時42分54秒 指摘や意見などあればSandBoxのBBSへ。
launch.html