< 目次

アプリケーション起動用 Web ページの作成


この章では、次のトピックについて説明します。

はじめに

次の情報は、Java SE 6 update 10 リリースに配備ツールキットスクリプトが導入される前のものです。
配備ツールキットスクリプトの使用方法については、Java Rich Internet Application 配備アドバイスを参照してください。

ある Web ページから JNLP 経由でアプリケーションを起動するには、そのページ内に JNLP ファイルへのリンクが含まれている必要があります。たとえば、Web サイト http://www.MySite.com 上にあるアプリケーション app.jnlp を起動できるようにするには、ページ内に次のリンクを含める必要があります。

<a href=http://www.MySite.com/app.jnlp>Launch the application</a>

ただし、ユーザーのコンピュータに Java Web Start がインストールされていない場合もあります。したがって、ページ内に、そうした場合に対応するためのロジック (スクリプト) を含める必要があります。実際、ページ内に次のようなロジックを含める必要があります。

Java Web Start がインストールされているかどうかを確認する

次に、スクリプトおよび自動インストールページの HTML について説明します。

Netscape 上に Java Web Start がインストールされているかどうかを確認する

JNLP 経由でのアプリケーション起動時に Web ページ上で最初に実行する必要のあるスクリプトを、次に示します。

<SCRIPT LANGUAGE="JavaScript"> 
var javawsInstalled = 0;  
var javaws142Installed=0;
var javaws150Installed=0;
var javaws160Installed = 0;
isIE = "false"; 
if (navigator.mimeTypes && navigator.mimeTypes.length) { 
   x = navigator.mimeTypes['application/x-java-jnlp-file']; 
   if (x) { 
      javawsInstalled = 1; 
      javaws142Installed=1;
      javaws150Installed=1;
      javaws160Installed = 1; 
  } 
} 
else { 
   isIE = "true"; 
} 
</SCRIPT> 

このスクリプトは、navigator.mimeTypes オブジェクトとその変数 navigator.mimeTypes.length を検索し、ブラウザが Netscape、IE のどちらであるかを判断します。length が 0 であった場合、そのブラウザは IE であるとみなされます。というのも、IE では navigator.mimeTypes 配列は定義されていますが、その内容は常に空だからです。length が 0 以外であった場合、そのブラウザは Netscape であるとみなされ、さらにその Netscape 上における JNLP MIME タイプの存在有無がチェックされます。存在していた場合、javawsInstalledjavaws142Installedjavaws150Installed、および javaws160Installed のすべてに 1 が設定されます。Netscape の場合、どのバージョンの Java Web Start がインストールされているかは判断できないため、4 つの変数のすべてに 1 が設定されます。

IE 上に Java Web Start がインストールされているかどうかを確認し、インストールされている場合はそのバージョンを確認する

上記 JavaScript のあとに、次のような、Internet Explorer ブラウザ関連の変数を設定する VBScript を記述する必要があります。

<SCRIPT LANGUAGE="VBScript">
on error resume next
If isIE = "true" Then
  If Not(IsObject(CreateObject("JavaWebStart.isInstalled"))) Then
     javawsInstalled = 0
  Else
     javawsInstalled = 1
  End If
  If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.4.2.0"))) Then
     javaws142Installed = 0
  Else
     javaws142Installed = 1
  End If 
  If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.5.0.0"))) Then
     javaws150Installed = 0
  Else
     javaws150Installed = 1
  End If  
  If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.6.0.0"))) Then
     javaws160Installed = 0
  Else
     javaws160Installed = 1
  End If  
End If
</SCRIPT>

この VBScript が実行されるのは、先の JavaScript で設定された変数 isIE"true" である場合、つまり、エンドユーザーのブラウザが Internet Explorer である場合です。このスクリプトは、JavaWebStart.dll 内の isInstalled COM オブジェクトをインスタンス化し、これを使って次の 4 つのことを判断します。

上記 2 つのスクリプトの実行が完了すると、次に示すように、変数 javawsInstalledjavaws142InstalledjavawsInstalled150、および javawsInstalled160 に 1、0 のいずれかが設定された状態となります。

Browser

javawsInstalled

javaws142Installed

javaws150Installed

javaws160Installed

Internet Explorer

任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0。

Java Web Start 1.4.2 がインストールされている場合は 1、そうでない場合は 0。

Java Web Start 1.5.0 がインストールされている場合は 1、そうでない場合は 0。

Java Web Start 1.6.0 がインストールされている場合は 1、そうでない場合は 0。

Netscape Navigator

任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0。

任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0。

任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0。

任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0。

Java Web Start がインストールされている場合はアプリケーションを起動し、そうでない場合は自動インストールページまたは汎用ダウンロードページへのリンクを表示する

さらに別の JavaScript を使って、次のいずれを実行するかを判断できます。

これらのシナリオを処理する JavaScript を、次に示します。

<script language="JavaScript">
/* Note that the logic below always launches the JNLP application
 *if the browser is Gecko based. This is because it is not possible
 *to detect MIME type application/x-java-jnlp-file on Gecko-based browsers. 
 */
if (javawsInstalled || (navigator.userAgent.indexOf("Gecko") !=-1)) {
    document.write("<a href=http://www.MySite.com/app.jnlp>Launch 
        the application</a>");
} else {
    document.write("Click ");
    document.write("<a href=http://java.sun.com/PluginBrowserCheck?
        pass=http://www.MySite.com/download.html&
        fail=http://java.sun.com/javase/downloads/ea.jsp>here</a> ");
    document.write("to download and install JRE 5.0 and 
        the application.");
}
</SCRIPT>

注:

  1. このスクリプトで使用されているのは、javawsInstalled だけです。javaws142Installedjavaws150Installedjavaws160Installed は使用されていません。

  2. ?」と「&」の直後にある改行は、コードを読みやすくするためだけに挿入されています。実際のスクリプトでは、href 文字列内に改行を含めないでください。

javawsInstalled が 1 である場合 (Java Web Start がすでにクライアント上で利用可能になっている場合)、スクリプトは、アプリケーションの jnlp ファイルへのリンクを表示します。Java Web Start がクライアント上にインストールされていない場合、スクリプトは代わりに、java.sun.com Web サイト上の PluginBrowserCheck プログラムへのリンクを表示します。PluginBrowserCheck は、クライアントが Microsoft Windows プラットフォーム上で Internet Explorer を使用しているかどうかをチェックします。該当する場合、PluginBrowserCheck は自動インストールページ http://www.MySite.com/download.html にユーザーをリダイレクトします。(Windows 上で動作する IE 向けの自動インストールページの作成方法については、次のセクション「自動インストールページを作成する」を参照。)PluginBrowserCheck は、ユーザーが Microsoft Windows 上で Internet Explorer を使用していないと判断した場合、java.sun.com 上の 6.0 JRE 汎用ダウンロードページにユーザーをリダイレクトします。

自動インストールページを作成する

download.html ファイルは、サーバー側に配置する必要があります。このファイルに含まれる特殊な OBJECT タグと PARAM タグにより、JRE 6.0 の自動インストーラがクライアントにダウンロードされます。Java Web Start に加え、ActiveX コントロールが、クライアントにダウンロードされます。ActiveX コントロールは、新しくインストールされた Java Web Start を使ってアプリケーションを起動します。download.html ファイルのサンプルを、次に示します。

<HTML>
<BODY>
<OBJECT codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=6,0,0,0" 
classid="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284" height=0 width=0>
<PARAM name="app" value="http://www.MySite.com/app.jnlp">
<PARAM name="back" value="true">
<!-- Alternate HTML for browsers which cannot instantiate the object -->
<A href="http://java.sun.com/javase/downloads/ea.jsp">
Download Java Web Start</A>
</OBJECT>
</BODY>
</HTML>

OBJECT タグによって、JRE 6.0 の自動インストーラが収められた .cab ファイルが取得されます。

URL

http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab

により、Java SE 6 リリースで使用できる最新の更新リリースが返されます。

文字列 Version=6,0,0,0 は、上記の CLSID で登録された wsdetect.dll バージョンの比較に使用します。ローカルマシンに dll がインストールされており、そのバージョンが指定の Version 以上であれば、ローカルマシンに dll をロードするだけです。それ以外は、指定のコードベースから Java をダウンロードしてインストールします。

クライアントへの JRE のインストール完了後にアプリケーションが自動的に起動されるように、アプリケーションの jnlp ファイルの場所が PARAM タグに指定されています。

app: Java Web Start の Active X コントロールがインストール (またはロード) されると、Java Web Start が呼び出され、この URL に指定されたアプリケーションが起動します。

back: アプリケーション起動後のブラウザの動作を制御します。現在のページを継続することもでき (この場合、download.html)、以前のページに戻ることもできます。

アプリケーション開発に関連する問題の詳細は、次の章、「アプリケーション開発時の考慮点」を参照してください。


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.