ある 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 について説明します。
JNLP 経由でのアプリケーション起動時に Web ページ上で最初に実行する必要のあるスクリプトを、次に示します。
<SCRIPT LANGUAGE="JavaScript">
var javawsInstalled = 0; var javaws142Installed=0;
var javaws150Installed=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;
}
}
else {
isIE = "true";
}
</SCRIPT>
このスクリプトは、navigator.mimeTypes
オブジェクトとその変数 navigator.mimeTypes.length
を検索し、ブラウザが Netscape、IE のどちらであるかを判断します。length
が 0 であった場合、そのブラウザは IE であるとみなされます。というのも、IE では navigator.mimeTypes
配列は定義されていますが、その内容は常に空だからです。length が 0 以外であった場合、そのブラウザは Netscape であるとみなされ、さらにその Netscape 上における JNLP MIME タイプの存在有無がチェックされます。 存在していた場合、javawsInstalled
、javaws142Installed
、および javaws150Installed
のすべてに、1 が設定されます。Netscape の場合、どのバージョンの Java Web Start がインストールされているかは判断できないため、4 つの変数のすべてに 1 が設定されます。
上記 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 End If </SCRIPT>
この VBScript が実行されるのは、先の JavaScript で設定された変数 isIE が "true" である場合、つまり、エンドユーザのブラウザが Internet Explorer である場合です。このスクリプトは、JavaWebStart.dll 内の isInstalled
COM オブジェクトをインスタンス化し、これを使って次の 4 つのことを判断します。
上記 2 つのスクリプトの実行が完了すると、次に示すように、変数 javawsInstalled
、javaws142Installed
、および javawsInstalled150
に 1、0 のいずれかが設定された状態となります。
ブラウザjavawsInstalled
javaws142Installed
javaws150Installed
Internet Explorer 任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0 Java Web Start 1.4.2 がインストールされている場合は 1、そうでない場合は 0 Java Web Start 1.5.0 がインストールされている場合は 1、そうでない場合は 0 Netscape Navigator 任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0 任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0 任意のバージョンの Java Web Start がインストールされている場合は 1、そうでない場合は 0
さらに別の 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/j2se/1.5.0/download.html>here</a> "); document.write("to download and install JRE 1.5.0 and the application."); } </SCRIPT>
注 -
|
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
上の 5.0 JRE 汎用ダウンロードページにユーザをリダイレクトします。
注: 次の 以下の方法で |
download.html ファイルは、サーバ側に配置する必要があります。このファイルに含まれる特殊な OBJECT タグと PARAM タグにより、JRE 5.0 の自動インストーラがクライアントにダウンロードされます。Java Web Start に加え、ActiveX コントロールが、クライアントにダウンロードされます。ActiveX コントロールは、新しくインストールされた Java Web Start を使ってアプリケーションを起動します。download.html ファイルのサンプルを、次に示します。
<HTML> <BODY> <OBJECT codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab" 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/j2se/1.5.0/download.html"> Download Java Web Start</A> </OBJECT> </BODY> </HTML>
この OBJECT タグによって、JRE 5.0 の自動インストーラが収められた .cab
ファイルが取得されます。クライアントへの JRE のインストール完了後にアプリケーションが自動的に起動されるように、アプリケーションの jnlp
ファイルの場所が PARAM タグに指定されています。
アプリケーション開発に関連する問題の詳細は、次の章、「アプリケーション開発時の考慮点」を参照してください。