この章では次のトピックについて説明します。
このリリースで使用している形式は、「Java Network Launching Protocol & API Specification (JSR-56) version 6.0」に指定されている形式と同じです。このガイドでは、JNLP ファイルでもっともよく使われる要素について説明しています。この形式の完全な説明については、仕様を参照してください。
要素 |
属性 |
説明 |
導入されたバージョン |
必須 |
---|---|---|---|---|
jnlp |
|
jnlp ファイルでメインとなる XML 要素。すべて jnlp 要素に含まれています。 |
1.0 |
はい |
|
spec |
spec 属性には 1.0、1.5.0、6.0 を選択できます。または、1.0+ のようなワイルドカードも使用できます。その jnlp ファイルが適切に動作できる、JNLP Specification の最小バージョンを示します。 |
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、selected、disabled、rollover、splash、shortcut) を示します。 |
1.0 |
|
|
width |
イメージの解像度を指定するために使用できます。 |
1.0 |
|
|
height |
イメージの解像度を指定するために使用できます。 |
1.0 |
|
|
depth |
イメージの解像度を指定するために使用できます。 |
1.0 |
|
offline-allowed |
|
クライアントシステムがネットワークから切断されてもこのアプリケーションが稼働できることを示します。 |
1.0 |
|
shortcut |
|
shortcut 要素を使用すると、アプリケーションのデスクトップの統合に対する設定方法を示すことができます。 |
1.5.0 |
|
|
online |
使用すると、アプリケーションの設定で、作成するショートカットをオンラインで実行するか、オフラインで実行するかを示すことができます。 |
1.5.0 |
|
desktop |
|
使用すると、アプリケーションの設定で、ショートカットをユーザーのデスクトップに配置するかどうかを示すことができます。 |
1.5.0 |
|
menu |
|
使用すると、アプリケーションの設定で、メニュー項目をユーザーのスタートメニューに配置するかどうかを示すことができます。 |
1.5.0 |
|
|
sub-menu |
使用すると、アプリケーションの設定で、メニュー項目を配置する場所を示すことができます。 |
1.5.0 |
|
association |
|
オペレーティングシステムに特定の拡張子のプライマリハンドラとして、また特定の MIME タイプとしての登録を行なってほしいかどうかを JNLP クライアントに伝えるために使用できます。 |
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 |
|
|
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 |
|
拡張要素で使用して、コンポーネント拡張機能の一部を示すことができます。 |
1.0 |
|
|
ext-part |
拡張機能で見つけることができるであろう、その含まれる部分の名前を示します。 |
1.0 |
はい |
|
download |
この拡張機能を定期的、または不定期にダウンロードする可能性があることを示す場合に使用できます。 |
1.0 |
|
|
part |
拡張機能を中に含めるための、この jnlp ファイルの一部の名前を示します。 |
1.0 |
|
package |
|
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 |
はい |
applicaation-desc |
|
アプリケーションの jnlp ファイルであることを示します。 |
1.0 |
|
|
main-class |
アプリケーションの public static void main(String[]) メソッドを含むクラス名。 |
1.0 |
はい |
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 |
はい |
|
height |
アプレットの高さ (ピクセル)。 |
1.0 |
はい |
param |
|
アプレットに渡すことができるパラメータのセット。 |
1.0 |
|
|
name |
このパラメータの名前 |
1.0 |
はい |
|
value |
このパラメータの値 |
1.0 |
はい |
component-desc |
|
コンポーネント拡張機能の jnlp ファイルであることを示します。 |
1.0 |
|
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"/>
</association>
<shortcut online="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
要素
title
要素: アプリケーションの名前。
vendor
要素: アプリケーションベンダーの名前。
homepage
要素: 単一の属性 href を含みます。 これは、アプリケーションのホームページを示す URL です。この要素は、Java アプリケーションキャッシュビューアが、アプリケーションの詳細情報を含む Web ページにユーザーをリダイレクトする際に使用されます。
description
要素: アプリケーションに関する短い文。description 要素は省略可能です。kind 属性は、description の用途を定義します。指定可能な値は、次のいずれかです。
- one-line: アプリケーションへの参照をリストまたは表の 1 行に表示する場合に、この description が使用されます。
- short: アプリケーションへの参照を表示する際に 1 段落分のスペースが取れる場合に、この description が使用されます。
- tooltip: アプリケーションへの参照をツールヒント内に表示する場合に、この description が使用されます。
個々の種類に対して指定可能な description 要素は、1 つだけです。kind 属性を含まない description 要素は、デフォルト値として使用されます。したがって、Java Web Start が
short
の種類の description 要素を必要としているが、それが JNLP ファイル内に指定されていなかった場合、属性を含まない description 要素のテキストが使用されます。description 要素に含まれるテキストは、プレーンテキストでなければなりません。HTML タグなどを含む形式はサポートされていません。
icon
要素: GIF 形式または JPEG 形式のイメージファイルへの HTTP URL を含みます。これらのアイコンは、次の場合にアプリケーションを表現するために使用されます。
- アプリケーション起動時に Java Web Start がアプリケーションをユーザーに表示する際
- Java アプリケーションキャッシュビューア内
- デスクトップショートカット内
ダウンロード中は 64x64 のアイコンが表示され、Java アプリケーションキャッシュビューア内とデスクトップショートカット内では 32x32 のアイコンが使用されます。Java Web Start は、アイコンのサイズ変更を必要に応じて自動的に行います。
省略可能な属性 width と height を使えば、イメージのサイズを指定できます。
省略可能な属性 kind="splash" を icon 要素内に指定すれば、そのイメージがアプリケーション起動時の「スプラッシュ」画面用だと示すことができます。 JNLP ファイルに
kind="splash"
属性を持つアイコン要素が含まれていない場合、Java Web Start はinformation
要素の他の項目を使用してスプラッシュ画面を構築します。JNLP ファイル内に icon イメージが 1 つも存在しなかった場合、スプラッシュイメージは、JNLP ファイルから取得されたアプリケーションのタイトルとベンダーで構成されます。
JNLP ファイルの icon 要素を追加または変更したあと初めてアプリケーションを起動する際には、以前のスプラッシュイメージが表示されます。2 回目以降のアプリケーション起動では、新しいスプラッシュイメージが表示されます。
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 Client が使用する可能性のあるヒントを提供します。shortcut 要素には省略可能なonline
属性と、2 つのサブ要素desktop
、menu
が含まれます。
association
要素: 省略可能な association 要素は、オペレーティングシステムに特定の拡張子のプライマリハンドラとして、また特定の MIME タイプとしての登録を行いたい JNLP クライアントへのヒントです。association 要素には必ず拡張子と MIME タイプ属性が割り当てられます。
related-content
要素: 省略可能な related-content 要素は、README ファイル、ヘルプページ、登録ページへのリンクなどの関連コンテンツの追加要素を、JNLP Client へのヒントとして説明します。アプリケーションは、このコンテンツをデスクトップ統合に含めるように要求します。related-content 要素には、href と title の必須属性が割り当てられています。次の 2 つのサブ要素のいずれかを割り当てることもできます。
description
要素: 関連コンテンツの簡単な説明icon
要素:JNLP Client がユーザーへの関連コンテンツを識別するために使用するアイコン
security
要素各アプリケーションはデフォルトで、アプレットのサンドボックスに類似した、制限されたランタイム内で実行されます。 security 要素を使うことで、無制限のアクセス権を要求できます。
all-permissions 要素が指定された場合、アプリケーションはクライアントマシンとローカルネットワークに対する完全なアクセス権を持ちます。完全なアクセス権を要求するアプリケーションでは、すべての JAR ファイルに署名する必要があります。アプリケーションの初回起動時に、ユーザーは証明書への同意を求められます。
update
要素update 要素は、Java Web Start がアプリケーションの更新をどのように処理するかを指定するのに使われます。
update 要素には、次に示す 2 つの属性をオプションで含めることができます。
check 属性:
check 属性は、JNLP クライアントが更新を確認する必要がある時期についての設定を示します。値には、「always」、「timeout」、「background」の 3 つのうち、いずれかを使用できます。「always」 の値は、アプリケーションを起動する前に常に更新確認を行うことを意味します。
「timeout」の値 (デフォルト)は、アプリケーションを起動する前に、タイムアウトになるまで更新確認を行うことを意味します。更新確認が完了せずにタイムアウトした場合、アプリケーションの起動後に、更新確認がそのままバックグラウンドで継続して行われます。
「background」 の値は、バックグラウンドでの更新確認の実行中にアプリケーションを起動することを意味します。
policy 属性:
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、arch、locale の各属性を使用します。resources 要素に指定可能なサブ要素は、jar、nativelib、j2se、property、package、extension の 6 つです。この開発者ガイドでは、package 要素と extension 要素については説明しません。詳細については、「Java Network Launching Protocol & API Specification (JSR-56) version 6.0」を参照してください。
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"/>
</resource>デフォルトでは、jar と nativelib リソースが定期的にダウンロードされます。この 2 つはダウンロードされたあと、アプリケーションが起動される前に、アプリケーションを実行している JVM がローカルに使用します。 jar と nativelib 要素では、リソースを lazy と指定することもできます。 この設定にすると、アプリケーションの起動前にリソースをクライアントシステムにダウンロードする必要がなくなります。
download 要素は、リソースを定期的にダウンロードするか、不定期にダウンロードするかの制御に使用します。 例を示します。
<jar href="sound.jar" download="lazy"/>
<nativelib href="native-sound.jar" download="eager"/>j2se 要素は、Java 仮想マシンの標準パラメータと、アプリケーションがサポートされる Java(TM) 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(TM) 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 の起動時に優先的に使用される仮想マシンの一連の引数を指定します。<j2se version="1.4+" java-vm-args="-ea -Xincgc"/>このバージョンでは、次の java-vm-args がサポートされます。
-d32, /* use a 32-bit data model if available */ -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=値」と指定して渡すことができます。
次のプロパティーは「安全」とみなされ、この方法で VM に渡されます。
sun.java2d.noddraw, javax.swing.defaultlf, javaws.cfg.jauthenticator, 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,信頼されていないアプリケーションの場合、JNLP ファイルに設定されるシステムプロパティーは、これらが安全とみなされる場合、またはプロパティー名が「
jnlp.
」または「javaws.
」で始まる場合にのみ Java Web Start で設定されます。
application-desc
要素application 要素は、JNLP ファイルの起動対象が、アプレットではなくアプリケーションであることを示します。application-desc 要素には 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>
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 属性は、code 属性の代わりに使用します。 main-class 属性には Applet クラスの名前 (.class の拡張子は除く) を指定します。 メインの JAR ファイル内の Main-Class マニフェストエントリから Applet クラスが検索可能である場合、この属性を省略してもかまいません。
注: アプレットは、JAR ファイル内にパッケージ化しないと、Java Web Start で正しく動作しません。
component-desc
要素component-desc 要素は、jnlp ファイルがアプリケーションまたはアプレットではなく、アプリケーションやアプレット、他の拡張機能のリソースとして使用できる拡張機能であることを意味します。
通常、コンポーネント拡張機能は、複数のアプリケーション間で共有される、または個別のセキュリティーが必要なリソースセットを取り除くために使用されます。
installer-desc
要素installer-desc 要素は、jnlp ファイルがアプリケーションを定義するインストーラの拡張機能であることを意味します。この拡張機能の jnlp ファイルは、アプリケーションやアプレット、他の拡張機能で最初に一度使用されると、その後は実行されません。
通常、インストーラの拡張機能は、ネイティブライブラリを VM に単純にロードする以上に複雑な設定を必要とする、プラットフォーム固有のネイティブコードをインストールするために使用されます。