この章では次のトピックについて説明します。
このリリースで使用している形式は、「JSR-00056: Java Network Launching Protocol and API」に指定されている形式と同じです。このガイドでは、JNLP ファイルでもっともよく使われる要素について説明しています。この形式の完全な説明については、仕様を参照してください。
要素 |
Attributes |
説明 |
導入されたバージョン |
必須 |
---|---|---|---|---|
jnlp |
|
jnlp ファイルでメインとなる XML 要素。すべて jnlp 要素に含まれています。 |
1.0 |
はい |
|
spec |
spec 属性には 1.0、1.5.0、6.0、6.0.10、6.0.18、7.0 を選択できます。または、1.0+ のようなワイルドカードも使用できます。その jnlp ファイルが適切に動作できる、JNLP 仕様の最小バージョンを示します。 |
1.0 |
|
|
codebase |
codebase 属性には、JNLP ファイルの href 属性で指定されているすべての相対 URL の基本となる場所が指定されています。 |
1.0 |
|
|
href |
href は JNLP ファイルの URL を指定します。 |
1.0 |
|
|
version |
JNLP ファイルのバージョンと起動されたアプリケーションのバージョン。 |
1.0 |
|
information |
|
information 要素には対象のアプリケーションとそのソースを説明したほかの要素が含まれています。 |
1.0 |
はい |
|
os |
この information 要素に対して適切なオペレーティングシステムを指定します。 |
1.5.0 |
|
|
arch |
この information 要素に対して適切なアーキテクチャーを指定します。 |
1.5.0 |
|
|
platform |
この information 要素に対して適切なプラットフォームを指定します。 |
1.5.0 |
|
|
locale |
この information 要素に対して適切なロケールを指定します。 |
1.5.0 |
|
title |
|
title 要素はアプリケーションのタイトルを指定します。 |
1.0 |
はい |
vendor |
|
vendor 要素はアプリケーションのプロバイダを指定します。 |
1.0 |
はい |
homepage |
|
アプリケーションのホームページ。 |
1.0 |
|
|
href |
このアプリケーションの詳細情報が得られる場所を示す URL。 |
1.0 |
はい |
description |
|
アプリケーションを説明する短い文。 |
1.0 |
|
|
kind |
説明タイプを示します。有効な値は one-line、short、tooltip です。 |
1.0 |
|
icon |
|
ユーザーがアプリケーションを識別できるようにアイコンを示します。 |
1.0 |
|
|
href |
アイコンファイルを指定する URL。アイコンファイルの形式には gif、jpg、png、ico があります。 |
1.0 |
はい |
|
kind |
推奨するアイコンの使用方法 (default、splash、shortcut) を示します。 |
1.0 |
|
|
width |
イメージの解像度を指定するために使用できます。 |
1.0 |
|
|
高さ |
イメージの解像度を指定するために使用できます。 |
1.0 |
|
|
depth |
イメージの解像度を指定するために使用できます。 |
1.0 |
|
offline-allowed |
|
クライアントシステムがネットワークから切断されてもこのアプリケーションが稼働できることを示します。 |
1.0 |
|
shortcut |
|
shortcut 要素を使用すると、アプリケーションのデスクトップの統合に対する設定方法を示すことができます。 |
1.5.0 |
|
|
online |
使用すると、アプリケーションの設定で、作成するショートカットをオンラインで実行するか、オフラインで実行するかを示すことができます。 |
1.5.0 |
|
|
install |
shortcut 要素内で省略可能な install 属性を使用すると、「インストール済み」と見なされることに関するアプリケーションの優先設定を示すことができます。値が「true」の場合、アプリケーションはインストール済みと見なされることを希望しています。install 属性のデフォルト値は「false」です。Windows では、これによってアプリケーションが「プログラムの追加と削除」パネルに表示されるかどうかが決まります。 |
7.0 |
|
desktop |
|
使用すると、アプリケーションの設定で、ショートカットをユーザーのデスクトップに配置するかどうかを示すことができます。 |
1.5.0 |
|
menu |
|
使用すると、アプリケーションの設定で、メニュー項目をユーザーのスタートメニューに配置するかどうかを示すことができます。 |
1.5.0 |
|
|
sub-menu |
使用すると、アプリケーションの設定で、メニュー項目を配置する場所を示すことができます。 |
1.5.0 |
|
association |
|
特定の拡張子および特定の MIME タイプのプライマリハンドラとしてオペレーティングシステムに登録してほしいかどうかを JNLP クライアントに伝えるために使用できます。この要素を含める場合は、offline-allowed 要素も含めるか、jnlp 要素の href 属性を設定する必要があります。 |
1.5.0 |
|
|
extensions |
アプリケーションが処理するために登録が必要なファイル拡張子のリスト (スペース区切り) を含んでいます。 |
1.5.0 |
|
|
mime-type |
アプリケーションが処理するために登録が必要な MIME タイプを含んでいます。 |
1.5.0 |
|
related-content |
|
アプリケーションに統合される可能性のある関連コンテンツの追加部分を示します。 |
1.5.0 |
|
|
href |
関連コンテンツを指す URL。 |
1.5.0 |
はい |
|
|
|
|
|
update |
|
update 要素は、JNLP クライアントがアプリケーションの更新を処理する方法について示します。 |
6.0 |
|
|
check |
JNLP クライアントが更新を確認する必要がある時期についての設定を示します。設定には、always、timeout、background を選択できます。 |
6.0 |
|
|
policy |
アプリケーションの起動前に更新が可能であると判断されたとき、JNLP クライアントがアプリケーション更新に行う処理方法の設定を示します。設定には、always、prompt-update、prompt-run を選択できます。 |
6.0 |
|
|
|
|
1.0 |
|
security |
|
この要素は拡張権限を要求する際に使用できます。 |
1.0 |
|
all-permissions |
|
すべてのアクセス権を使用できる状態でアプリケーションを実行できるよう要求します。 |
1.0 |
|
j2ee-application-client-permissions |
|
J2EE アプリケーションクライアントのセキュリティー環境の仕様に対応したアクセス権を持たせてアプリケーションを稼働させるように要求します。 |
1.0 |
|
|
|
|
1.0 |
|
resources |
|
アプリケーションに必要なすべてのリソースを示します。 |
1.0 |
はい |
|
os |
この resources 要素に対して適切なオペレーティングシステムを指定します。 |
1.0 |
|
|
arch |
この resources 要素に対して適切なアーキテクチャーを指定します。 |
1.0 |
|
|
locale |
この resources 要素に対して適切なロケールを指定します。 |
|
|
java (または j2se) |
|
アプリケーションと一緒に稼働させる Java のバージョンを指定します。 |
6.0 (java) |
|
|
version |
使用するバージョンの範囲を順番にまとめたリストを示します。 |
1.0 |
はい |
|
href |
この Java のバージョンの供給者とダウンロードされるであろう場所を示す URL。 |
1.0 |
|
|
java-vm-args |
Java 起動時にアプリケーションが JNLP クライアントに使用させるであろう標準の仮想マシンの引数と非標準の仮想マシンの引数の追加セットを示します。 |
1.0 |
|
|
initial-heap-size |
Java ヒープの初期サイズを指定します。 |
1.0 |
|
|
max-heap-size |
Java ヒープの最大サイズを指定します。 |
1.0 |
|
jar |
|
アプリケーションのクラスパスに含める JAR ファイルを指定します。 |
1.0 |
はい |
|
href |
jar ファイルの URL。 |
1.0 |
はい |
|
version |
要求された jar ファイルのバージョン。バージョンベースのダウンロードプロトコルを使用する必要があります。 |
1.0 |
|
|
main |
この jar ファイルにアプリケーションの main メソッドを含むクラスが含まれているかどうかを示します。 |
1.0 |
|
|
download |
この jar ファイルのダウンロードが定期的または不定期に、あるいは進捗表示のために行われる可能性があることを示す場合に使用できます。 |
1.0 (6.0.18) |
|
|
size |
jar ファイルのダウンロード可能なサイズをバイトで指定します。 |
1.0 |
|
|
part |
使用すると、リソースを一緒にグループ化して同時にダウンロードできます。 |
1.0 |
|
nativelib |
|
ルートディレクトリにネイティブライブラリを含む JAR ファイルを指定します。 |
1.0 |
|
|
href |
jar ファイルの URL。 |
1.0 |
はい |
|
version |
要求された jar ファイルのバージョン。バージョンベースのダウンロードプロトコルを使用する必要があります。 |
1.0 |
|
|
download |
この jar ファイルを不定期にダウンロードする可能性があることを示す場合に使用できます。 |
1.0 |
|
|
size |
jar ファイルのダウンロード可能なサイズをバイトで指定します。 |
1.0 |
|
|
part |
使用すると、リソースを一緒にグループ化して同時にダウンロードできます。 |
1.0 |
|
extension |
|
このアプリケーションで使用する追加の component-desc または installer-desc に対するポインタを含みます。 |
1.0 |
|
|
href |
追加の拡張 jnlp ファイルの URL。 |
1.0 |
はい |
|
version |
追加の拡張 jnlp ファイルのバージョン。 |
1.0 |
|
|
name |
追加の拡張 jnlp ファイルの名前。 |
1.0 |
|
ext-download |
|
extension 要素で使用して、コンポーネント拡張機能の一部を示すことができます。 |
1.0 |
|
|
ext-part |
拡張機能で見つけることができるであろう、その含まれる部分の名前を示します。 |
1.0 |
はい |
|
download |
この拡張機能を定期的、または不定期にダウンロードする可能性があることを示す場合に使用できます。 |
1.0 |
|
|
part |
拡張機能を中に含めるための、この jnlp ファイルの一部の名前を示します。 |
1.0 |
|
パッケージ |
|
JNLP クライアントに、JAR ファイルに実装されるパッケージを示す場合に使用できます。 |
1.0 |
|
|
name |
指定部分の jar ファイルに含まれるパッケージ名。 |
1.0 |
はい |
|
part |
指定のパッケージ名を含む jar ファイルを含んでいる部分の名前。 |
1.0 |
はい |
|
recursive |
指定の部分で見つけることができる、指定の名前で始まるすべてのパッケージ名を指定する場合に使用できます。 |
1.0 |
|
property |
|
System.getProperty と System.getProperties メソッドで使用できるシステムプロパティーを定義します。 |
1.0 |
|
|
name |
システムプロパティーの名前。 |
1.0 |
はい |
|
value |
設定される値。 |
1.0 |
はい |
|
|
|
1.0 |
|
|
|
注:jnlp ファイルには application-desc、applet-desc、component-desc、installer-desc のうちのいずれかを含める必要があります |
1.0 |
はい |
application-desc |
|
アプリケーションの jnlp ファイルであることを示します。 |
1.0 |
|
|
main-class |
アプリケーションの public static void main(String[]) メソッドを含むクラス名。 |
1.0 |
はい |
|
progress-class |
DownloadServiceListener の実装を格納するクラスの名前で、ダウンロードの進捗状況を示すために使用できます。 |
6.0.18 |
|
argument |
|
各 argument には、main メソッドに渡される追加の引数が順番に含まれています。 |
1.0 |
|
applet-desc |
|
アプレットの jnlp ファイルであることを示します。 |
1.0 |
|
|
main-class |
メインとなる Applet クラスの名前です。 |
1.0 |
はい |
|
documentbase |
URL としての Applet のドキュメントベース。 |
1.0 |
|
|
name |
Applet の名前。 |
1.0 |
はい |
|
width |
アプレットの幅 (ピクセル)。 |
1.0 |
はい |
|
高さ |
アプレットの高さ (ピクセル)。 |
1.0 |
はい |
|
progress-class |
DownloadServiceListener の実装を格納するクラスの名前で、ダウンロードの進捗状況を示すために使用できます。 |
6.0.18 |
|
param |
|
アプレットに渡すことができるパラメータのセット。 |
1.0 |
|
|
name |
このパラメータの名前 |
1.0 |
はい |
|
value |
このパラメータの値 |
1.0 |
はい |
component-desc |
|
コンポーネント拡張機能の jnlp ファイルであることを示します。 |
1.0 |
|
|
progress-class |
DownloadServiceListener の実装を格納するクラスの名前で、ダウンロードの進捗状況を示すために使用できます。 |
6.0.18 |
|
installer-desc |
|
インストールされた拡張機能の jnlp ファイルであることを示します。 |
1.0 |
|
|
main-class |
インストーラの public static void main(String[]) メソッドを含むクラス名。 |
1.0 |
はい |
JNLP ファイルは XML ドキュメントです。次に、JNLP ファイルの完全な記述例を示します。
<?xml version="1.0" encoding="utf-8"?> <!-- JNLP File for SwingSet2 Demo Application --> <jnlp spec="6.0+" codebase="http://my_company.com/jaws/apps" href="swingset2.jnlp"> <information> <title>SwingSet2 Demo Application</title> <vendor>Sun Microsystems, Inc.</vendor> <homepage href="docs/help.html"/> <description>SwingSet2 Demo Application</description> <description kind="short">A demo of the capabilities of the Swing Graphical User Interface.</description> <icon href="images/swingset2.jpg"/> <icon kind="splash" href="images/splash.gif"/> <offline-allowed/> <association mime-type="application-x/swingset2-file" extensions="swingset2"/> <shortcut online="false" install="false"> <desktop/> <menu submenu="My Corporation Apps"/> </shortcut> </information> <information os="linux"> <title> SwingSet2 Demo on Linux </title> <homepage href="docs/linuxhelp.html"> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.6+" java-vm-args="-esa -Xnoclassgc"/> <jar href="lib/SwingSet2.jar"/> </resources> <application-desc main-class="SwingSet2"/> </jnlp>
この例は、ドキュメントの基本構造を示したものです。ルート要素は jnlp ですが、この要素には、4 つのサブ要素 information、security、resources、application-desc があります。さらに、Java Web Start は applet-desc 要素を使用することで、アプレットの起動もサポートします。要素の詳細は次のとおりです。
jnlp
要素spec
属性: この属性が 1.0 以上でないと、このリリースで正しく動作しません。デフォルト値は「1.0+」です。したがって、通常はこの属性を省略してもかまいません。このバージョンは、バージョン 1.0、1.5、および 6.0 の仕様をサポートしていますが、以前のバージョンでは 1.0 と 1.5 しかサポートされていません。spec="6.0+"
を指定する jnlp ファイルは、このバージョンで動作しますが、以前のバージョンの Java Web Start では動作しません。
codebase
属性: JNLP ファイルの href 属性に指定された相対 URL はすべて、この URL を基準として処理されます。
href
属性: これは、JNLP ファイル自体の格納場所を示す URL です。
information
要素os
属性: この属性には、この要素のオペレーティングシステム名のリストが含まれます。os
属性の詳細については、後述の resources
要素の説明を参照してください。
title
要素: アプリケーションの名前。
vendor
要素: アプリケーションベンダーの名前。
homepage
要素: 単一の属性 href を含みます。これは、アプリケーションのホームページを示す URL です。この要素は、Java アプリケーションキャッシュビューアが、アプリケーションの詳細情報を含む Web ページにユーザーをリダイレクトする際に使用されます。
description
要素: アプリケーションに関する短い文。description 要素は省略可能です。kind 属性は、description の用途を定義します。指定可能な値は、次のいずれかです。
個々の種類に対して指定可能な description 要素は、1 つだけです。kind 属性を含まない description 要素は、デフォルト値として使用されます。したがって、Java Web Start が short
の種類の description 要素を必要としているが、それが JNLP ファイル内に指定されていなかった場合、属性を含まない description 要素のテキストが使用されます。
description 要素に含まれるテキストは、プレーンテキストでなければなりません。HTML タグなどを含む形式はサポートされていません。
icon
要素: GIF、JPEG、ICO、または PNG 形式のイメージファイルへの HTTP URL を含みます。これらのアイコンは、次の場合にアプリケーションを表現するために使用されます。
ダウンロード中は 64x64 のアイコンが表示され、Java アプリケーションキャッシュビューア内とデスクトップショートカット内では 32x32 のアイコンが使用されます。Java Web Start は、アイコンのサイズ変更を必要に応じて自動的に行います。
省略可能な属性 width と height を使えば、イメージのサイズを指定できます。
省略可能な kind 属性には、次の値のいずれかを指定できます。
JNLP ファイルには、kind 属性がそれぞれ異なる複数の icon 要素を含めることができます。これにより、アプリケーションのアイコンイメージを複数指定できます。
offline-allowed
要素: 省略可能な offline-allowed 要素は、オフラインでのアプリケーション起動を許可するかどうかを示します。
offline-allowed が指定されている場合、Java アプリケーションキャッシュビューアでアプリケーションをオフラインで起動できます。またアプリケーションをオフラインで起動するショートカットを作成できます。
アプリケーションをオフラインで起動した場合、更新のチェックは行われません。また、API 呼び出し BasicService.isOffline()
は true
を返します。
また、offline-allowed 要素は、Java Web Start がアプリケーションの更新をチェックする方法も制御します。この要素が指定されていない場合 (つまり、アプリケーションをオンラインで実行する必要がある場合)、Java Web Start は常に、更新版があるかどうかをチェックしたあとでアプリケーションを起動します。更新版が見つかった場合は、その新しいアプリケーションをダウンロードおよび起動します。したがって、ユーザーが実行するアプリケーションが常に最新版であることが保証されます。ただし、オフラインの場合、アプリケーションを実行することはできません。
offline-allowed が指定されている場合も、Java Web Start は更新版があるかどうかをチェックします。ただし、アプリケーションがダウンロード済みであった場合、そのチェック処理は数秒でタイムアウトになります。タイムアウトになった場合、キャッシュ済みのアプリケーションが代わりに起動されます。サーバーとの接続がある程度高速であれば、たいていは最新版のアプリケーションが実行されるはずですが、保証はありません。ただし、アプリケーションはオフラインで実行できます。
shortcut
要素: 省略可能な shortcut 要素を使用すると、アプリケーションのデスクトップの統合に対する設定方法を示すことができます。shortcut 要素とそのサブ要素は、JNLP クライアントが使用する可能性のあるヒントを提供します。shortcut 要素には省略可能な online
属性と install
属性、および省略可能な 2 つのサブ要素 desktop
と menu
が含まれます。
association
要素: 省略可能な association 要素は、特定の拡張子および特定の MIME タイプのプライマリハンドラとしてオペレーティングシステムに登録してほしいという、JNLP クライアントへのヒントです。association 要素には必ず拡張子と MIME タイプ属性が割り当てられます。association 要素を含める場合は、offline-allowed 要素も含めるか、アプリケーションを見つけて実行できるように jnlp 要素の href
属性を設定する必要があります。
related-content
要素: 省略可能な related-content 要素は、README ファイル、ヘルプページ、登録ページへのリンクなどの関連コンテンツの追加要素を、JNLP クライアントへのヒントとして説明します。アプリケーションは、このコンテンツをデスクトップ統合に含めるように要求します。related-content 要素には、href と title の必須属性が割り当てられています。次の 2 つのサブ要素のいずれかを割り当てることもできます。
description
要素: 関連コンテンツの簡単な説明。icon
要素: JNLP クライアントがユーザーへの関連コンテンツを識別するために使用するアイコン。security
要素各サンドボックスアプリケーションは、アプレットのサンドボックスに類似した、制限された実行環境で実行されます。security 要素を使うことで、無制限のアクセス権を要求できます。
all-permissions 要素が指定された場合、アプリケーションはクライアントマシンとローカルネットワークに対する完全なアクセス権を持ちます。すべての JAR ファイルに署名する必要があります。ユーザーは、証明書を受け入れてアプリケーションの実行に同意するよう求められます。
update
要素update 要素は、Java Web Start がアプリケーションの更新をどのように処理するかを指定するのに使われます。
update 要素には、次に示す 2 つの属性をオプションで含めることができます。
check attribute:
check 属性は、JNLP クライアントが更新を確認する必要がある時期についての設定を示します。値には、「always」、「timeout」、「background」の 3 つのうち、いずれかを使用できます。
「always」の値は、アプリケーションを起動する前に常に更新確認を行うことを意味します。
「timeout」の値 (デフォルト) は、アプリケーションを起動する前に、タイムアウトになるまで更新確認を行うことを意味します。更新確認が完了せずにタイムアウトした場合、アプリケーションの起動後に、更新確認がそのままバックグラウンドで継続して行われます。
「background」の値は、バックグラウンドでの更新確認の実行中にアプリケーションを起動することを意味します。
policy attribute:
policy 属性は、アプリケーションの起動前に更新が可能であると判断されたとき、JNLP クライアントがアプリケーション更新に行う処理方法の設定を示します。値には、「always」、「prompt-update」、「prompt-run」の 3 つのうち、いずれかを使用できます。
「always」の値 (デフォルト) は、ユーザーに通知することなく、常に更新をダウンロードすることを意味します。
「prompt-update」の値を使用すると、ユーザーに更新バージョンをダウンロードして実行するかどうか、またはキャッシュされたバージョンを起動するかどうかを尋ねます。
「prompt-run」の値を使用すると、ユーザーに更新バージョンをダウンロードして実行するかどうか、またはキャンセルしてアプリケーションの実行を中止するかどうかを尋ねます。
たとえば、
<update check="always" policy="prompt-update">resources
要素resources 要素は、アプリケーションに含まれる Java クラスファイル、ネイティブライブラリ、システムプロパティーなど、すべてのリソースを指定するために使用します。リソースの定義は、特定のペレーティングシステム (os 属性)、アーキテクチャー (arch 属性)、ロケール (locale 属性) に限定することが可能です。
os
属性には、リソースのオペレーティングシステム名のリストが含まれます。たとえば、それぞれ異なる os
属性を指定した複数の resources
定義を使用して、複数のオペレーティングシステムのネイティブライブラリを指定できます。
os
属性には、スペースで区切られたオペレーティングシステム名のリストが含まれます。実行時に、os
の値と os.name
システムプロパティーの先頭が比較され、一致するものが検索されます。たとえば、os
属性の値が「Windows」であれば、「Windows Vista」および「Windows 7」の両オペレーティングシステムに一致します。
リストに指定するオペレーティングシステムの名前にスペースが含まれている場合は、スペースがオペレーティングシステム名の一部であることを示すために、バックスラッシュを使用します。次の例は、「Windows Vista」と「Windows 7」に一致します。
<resources os="Windows\ Vista Windows\ 7"> <jar href="hello.jar"/> </resources>
resources
要素に指定可能なサブ要素は、jar、nativelib、j2se、property、package、extension の 6 つです。この開発者ガイドでは、package 要素と extension 要素については説明しません。詳細は、「JSR-00056: Java Network Launching Protocol and API」を参照してください。
jar 要素には、アプリケーションのクラスパスに含める JAR ファイルを指定します。たとえば、
<jar href="myjar.jar"/>
ClassLoader オブジェクトを使用して、jar ファイルが JVM にロードされます。通常、jar ファイルには、特定のアプリケーションのコードを含む Java クラスが含まれますが、getResource メカニズムで使用できるアイコンや構成ファイルのようなほかのリソースも含まれています。
nativelib 要素は、ネイティブライブラリを含む JAR ファイルを指定します。たとえば、
<nativelib href="lib/windows/corelib.jar"/>
JNLP クライアントは、System.loadLibrary メソッドを使用して、JAR ファイルのルートディレクトリ (/
) にある各ファイルエントリが実行中のプロセスに確実にロードできるようにする必要があります。各エントリには、プラットフォーム固有の共有ライブラリを正しい命名規約を使用して含める必要があります (Windows の *.dll
、Solaris や Linux の lib*.so
など)。System.loadLibrary への呼び出しを実際に行うのは、アプリケーションの役目です。
通常、ネイティブライブラリは、特定のオペレーティングシステムとアーキテクチャーに対応した resources 要素に含まれます。たとえば、
<resources os="SunOS" arch="sparc"> <nativelib href="lib/solaris/corelibs.jar"/> </resources>
デフォルトでは、jar と nativelib リソースが定期的にダウンロードされます。つまり、これらはアプリケーションが起動される前にダウンロードされ、アプリケーションを実行している JVM でローカルに使用可能になります。jar と nativelib 要素では、リソースを lazy と指定することもできます。この設定にすると、アプリケーションの起動前にリソースをクライアントシステムにダウンロードする必要がなくなります。
download 属性は、リソースが定期的にダウンロードされるか、不定期にダウンロードされるか、あるいは進捗のカスタム実装を含んでいるかの制御に使用します。 たとえば、
<jar href="sound.jar" download="lazy"/>
<nativelib href="native-sound.jar" download="eager"/>
<jar href="progress.jar" download="progress"/>
download="progress" が指定されている jar は、定期的にダウンロードされます。また、ほかのリソースのダウンロード中に進捗を示すためにも使用できます。
j2se 要素は、Java 仮想マシンの標準パラメータと、アプリケーションがサポートされる Java Platform Standard Edition Runtime Environment (JRE) のバージョンを指定します。複数の JRE を指定する場合、サポート対象の JRE を優先順にリストに示します。もっとも望ましいバージョンを最初に選択します。たとえば、
<j2se version="1.3" initial-heap-size="64m" max-heap-size="128m"/>
<j2se version="1.4.2+" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-esa -Xnoclassgc"/>
version
属性は、デフォルトで Java Platform Standard Edition のプラットフォームバージョン (仕様バージョン) を参照します。現時点で定義されているプラットフォームバージョンは、1.2、1.3、1.4、1.5 および 1.6 です。(通常、プラットフォームバージョンには、マイクロバージョン番号 (1.4.2 など) は含まれない。)
正確な製品バージョン (実装バージョン) を、href
属性を使用して指定することもできます。たとえば、1.3.1_07、1.4.2、または 1.5.0-beta2 のようになります。次のように指定します。
<j2se version="1.4.2" href="http://java.sun.com/products/autodl/j2se"/
または
<j2se version="1.4.2_04" href="http://java.sun.com/products/autodl/j2se"/>
プラットフォームバージョンが指定された場合 (つまり、href
属性が指定されなかった場合)、Java Web Start は、インストール済みの非 FCS (マイルストン) の JRE を、要求に一致するものとみなしません。例: フォームの要求
<j2se version="1.4+"/>
この場合、1.4.1-ea や 1.4.2-beta の JRE がインストールされていても、それらは要求に一致する JRE とはみなされません。Sun Microsystems, Inc. が提供する JRE では、1.3.0 以降、非 FCS (マイルストン) のバージョン文字列にはダッシュ (-
) を含めることになっています。
j2se 要素の java-vm-args
属性は、Java の起動時に優先的に使用される仮想マシンの一連の引数を指定します。
このバージョンでは、次の java-vm-args がサポートされます。
-d32, /* use a 32-bit data model if available (unix platforms only) */ -client, /* to select the client VM */ -server, /* to select the server VM */ -verbose, /* enable verbose output */ -version, /* print product version and exit */ -showversion, /* print product version and continue */ -help, /* print this help message */ -X, /* print help on non-standard options */ -ea, /* enable assertions */ -enableassertions, /* enable assertions */ -da, /* disable assertions */ -disableassertions, /* disable assertions */ -esa, /* enable system assertions */ -enablesystemassertions, /* enable system assertions */ -dsa, /* disable system assertione */ -disablesystemassertions, /* disable system assertione */ -Xmixed, /* mixed mode execution (default) */ -Xint, /* interpreted mode execution only */ -Xnoclassgc, /* disable class garbage collection */ -Xincgc, /* enable incremental garbage collection */ -Xbatch, /* disable background compilation */ -Xprof, /* output cpu profiling data */ -Xdebug, /* enable remote debugging */ -Xfuture, /* enable strictest checks, anticipating future default */ -Xrs, /* reduce use of OS signals by Java/VM (see documentation) */ -XX:+ForceTimeHighResolution, /* use high resolution timer */ -XX:-ForceTimeHighResolution, /* use low resolution (default) */
次の引数も加えることができます。
-ea, /* enable assertions for classes */ -enableassertions, /* enable assertions for classes */ -da, /* disable assertions for classes */ -disableassertions, /* disable assertions for classes */ -verbose, /* enable verbose output */ -Xms, /* set initial Java heap size */ -Xmx, /* set maximum Java heap size */ -Xss, /* set java thread stack size */ -XX:NewRatio, /* set Ratio of new/old gen sizes */ -XX:NewSize, /* set initial size of new generation */ -XX:MaxNewSize, /* set max size of new generation */ -XX:PermSize, /* set initial size of permanent gen */ -XX:MaxPermSize, /* set max size of permanent gen */ -XX:MaxHeapFreeRatio, /* heap free percentage (default 70) */ -XX:MinHeapFreeRatio, /* heap free percentage (default 40) */ -XX:UseSerialGC, /* use serial garbage collection */ -XX:ThreadStackSize, /* thread stack size (in KB) */ -XX:MaxInlineSize, /* set max num of bytecodes to inline */ -XX:ReservedCodeCacheSize, /* Reserved code cache size (bytes) */ -XX:MaxDirectMemorySize,
property 要素はシステムプロパティーを定義します。これらのプロパティーは、System.getProperty、System.setProperties の両メソッドを使って取得できます。この要素では、2 つの属性 name と value を必ず指定する必要があります。たとえば、
<property name="key" value="overwritten"/>jnlp ファイルに設定されるプロパティーは、通常は VM が起動してからアプリケーションが呼び出されるまでの間に、Java Web Start により設定されます。一部のプロパティーは「安全」とみなされ、Java 呼び出しコマンド行で引数「-Dkey=値」と指定して渡すことができます。
次のプロパティーと、「javaws.」または「jnlp.」で始まるプロパティーは、「安全」とみなされ、この方法で VM に渡されます。
sun.java2d.noddraw, swing.useSystemFontSettings, swing.metalTheme, http.agent, http.keepAlive, sun.awt.noerasebackground, sun.java2d.opengl, sun.java2d.d3d, java.awt.syncLWRequests, java.awt.Window.locationByPlatform, sun.awt.erasebackgroundonresize, swing.noxp, swing.boldMetal, awt.useSystemAAFontSettings, sun.java2d.dpiaware, sun.awt.disableMixing, sun.lang.ClassLoader.allowArraySyntax
信頼されていないアプリケーションの場合、JNLP ファイルに設定されているシステムプロパティーは、これらが安全とみなされる場合にのみ Java Web Start で設定されます。
Java Web Start アプリケーションの動作に影響を与えるプロパティーについては、「Rich Internet Application の動作に影響を与えるプロパティー」を参照してください。
application-desc
要素application 要素は、JNLP ファイルの起動対象が、アプレットではなくアプリケーションであることを示します。application 要素には main-class 属性を指定できます。省略可能なこの属性を使えば、アプリケーションのメインクラス (最初に実行すべき public static void main(String argv[]) メソッドを含んでいるクラス) の名前を指定できます。
main-class
属性を省略できるのは、JNLP ファイル内に指定された最初の JAR ファイルに main
クラスを含むマニフェストファイルが格納されている場合です。
アプリケーションへの引数を指定するには、1 つまたは複数のネストされた argument 要素を含めます。たとえば、
<application-desc main-class="Main">
<argument>arg1</argument>
<argument>arg2</argument>
</application-desc>
(オプション) progress-class
属性を使用すると、この名前のクラスが javax.jnlp.DownloadServiceListener インタフェースを実装することを示すことができます。このクラスは最初にロードし、ダウンロードされ検証されるほかのリソースの進捗を示すために使用できます。
applet-desc
要素Java Web Start は、Java アプレットの起動をサポートします。このサポートにより、既存コードの Java Web Start への移行が容易になります。
アプレットを起動するには、application-desc 要素の代わりに applet-desc 要素を使用します。たとえば、
<applet-desc
documentBase="http://..."
name="TimePilot"
main-class="TimePilot.TimePilotApp"
width="527"
height="428">
<param name="key1" value="value1"/>
<param name="key2" value="value2"/>
</applet-desc>
アプレットを構成する JAR ファイルは、アプリケーションの場合と同じく、resources 要素を使って記述します。documentBase を明示的に指定する必要があるのは、JNLP ファイルが HTML ページに埋め込まれないからです。その他の属性はそれぞれ、特定の HTML アプレットタグ要素に対応します。
code 属性の代わりに main-class 属性が使用されます。main-class 属性には Applet クラスの名前 (.class 拡張子は除く) を指定します。メインの JAR ファイル内の Main-Class マニフェストエントリから Applet クラスが検索可能である場合、この属性を省略してもかまいません。
(オプション) progress-class
属性を使用すると、この名前のクラスが javax.jnlp.DownloadServiceListener インタフェースを実装することを示すことができます。このクラスは最初にロードし、ダウンロードされ検証されるほかのリソースの進捗を示すために使用できます。
注:アプレットは、JAR ファイル内にパッケージ化しないと、Java Web Start で正しく動作しません。
component-desc
要素component-desc 要素は、jnlp ファイルがアプリケーションまたはアプレットではなく、アプリケーションやアプレット、ほかの拡張機能のリソースとして使用できる拡張機能であることを意味します。
通常、コンポーネント拡張機能は、複数のアプリケーション間で共有される、または個別のセキュリティーが必要なリソースセットを取り除くために使用されます。
(オプション) progress-class
属性を使用すると、この名前のクラスが javax.jnlp.DownloadServiceListener インタフェースを実装することを示すことができます。このクラスは最初にロードし、ダウンロードされ検証されるほかのリソースの進捗を示すために使用できます。
installer-desc
要素installer-desc 要素は、jnlp ファイルがアプリケーションを定義するインストーラの拡張機能であることを意味します。この拡張機能の jnlp ファイルは、アプリケーションやアプレット、ほかの拡張機能で最初に一度使用されると、その後は実行されません。
通常、インストーラの拡張機能は、ネイティブライブラリを VM に単純にロードする以上に複雑な設定を必要とする、プラットフォーム固有のネイティブコードをインストールするために使用されます。