このセクションでは、次のトピックについて説明します。
このリリースで使用している形式は、「Java Network Launching Protocol & API Specification (JSR-56) version 8.20」に指定されている形式と同じです。 このガイドでは、JNLPファイルでもっともよく使われる要素について説明しています。 この形式の完全な説明については、仕様を参照してください。
|
要素 |
属性 |
説明 |
導入されたバージョン |
必須 |
|---|---|---|---|---|
|
jnlp |
|
jnlpファイルでメインとなるXML要素。 すべてjnlp要素に含まれています。 |
1.0 |
はい |
|
|
spec |
spec属性には1.0、1.5.0、6.0、6.0.10、6.0.18、7.0、8.20を選択できます。または、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 |
|
|
|
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 |
|
|
|
height |
イメージの解像度を指定するために使用できます。 |
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 |
|
|
security |
|
この要素は拡張権限を要求する際に使用できます。 |
1.0 |
|
|
all-permissions |
|
すべてのアクセス権を使用できる状態でアプリケーションを実行できるよう要求します。 |
1.0 |
|
|
j2ee-application-client-permissions |
|
J2EEアプリケーション・クライアントのセキュリティ環境の仕様に対応したアクセス権を持たせてアプリケーションを稼働させるように要求します。 |
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 |
|
|
package |
|
JNLPクライアントに、JARファイルに実装されるパッケージを示す場合に使用できます。 |
1.0 |
|
|
|
name |
指定部分のjarファイルに含まれるパッケージ名。 |
1.0 |
はい |
|
|
part |
指定のパッケージ名を含むjarファイルを含んでいる部分の名前。 |
1.0 |
はい |
|
|
recursive |
指定の部分で見つけることができる、指定の名前で始まるすべてのパッケージ名を指定する場合に使用できます。 |
1.0 |
|
|
property |
|
System.getPropertyとSystem.getPropertiesメソッドで使用できるシステム・プロパティを定義します。 ノート: 署名されていないJNLPファイルに設定されているシステム・プロパティは、セキュアであるとみなされる場合にのみJava Web Startで設定されます。 セキュアなプロパティに関するノートを参照してください。 |
1.0 |
|
|
|
name |
システム・プロパティの名前。 |
1.0 |
はい |
|
|
value |
設定される値。 |
1.0 |
はい |
|
application-desc |
|
アプリケーションのjnlpファイルであることを示します。 |
1.0 |
ノート: jnlpファイルにはapplication-desc、applet-desc、component-desc、installer-descのうちのいずれかを含める必要があります |
|
|
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 |
ノート: jnlpファイルにはapplication-desc、applet-desc、component-desc、installer-descのうちのいずれかを含める必要があります |
|
|
main-class |
メインとなるAppletクラスの名前です。 |
1.0 |
はい |
|
|
documentbase |
URLとしてのAppletのドキュメント・ベース。 |
1.0 |
|
|
|
name |
Appletの名前。 |
1.0 |
はい |
|
|
width |
アプレットの幅(ピクセル)。 |
1.0 |
はい |
|
|
height |
アプレットの高さ(ピクセル)。 |
1.0 |
はい |
|
|
progress-class |
DownloadServiceListenerの実装を格納するクラスの名前で、ダウンロードの進捗状況を示すために使用できます。 |
6.0.18 |
|
|
param |
|
アプレットに渡すことができるパラメータのセット。 |
1.0 |
|
|
|
name |
このパラメータの名前 |
1.0 |
はい |
|
|
value |
このパラメータの値 |
1.0 |
はい |
|
component-desc |
|
コンポーネント拡張機能のjnlpファイルであることを示します。 |
1.0 |
ノート: jnlpファイルにはapplication-desc、applet-desc、component-desc、installer-descのうちのいずれかを含める必要があります |
|
|
progress-class |
DownloadServiceListenerの実装を格納するクラスの名前で、ダウンロードの進捗状況を示すために使用できます。 |
6.0.18 |
|
|
installer-desc |
|
インストールされた拡張機能のjnlpファイルであることを示します。 |
1.0 |
ノート: jnlpファイルにはapplication-desc、applet-desc、component-desc、installer-descのうちのいずれかを含める必要があります |
|
|
main-class |
インストーラのpublic static void main(String[])メソッドを含むクラス名。 |
1.0 |
はい |
多くのカスタマイズを必要としない基本アプリケーションの場合、JNLPファイルはシンプルにすることができます。 複雑なアプリケーションの場合、JNLPファイルに追加要素を追加することができます。
要素は「JNLP要素」で説明されています。
この例では、単純なJNLPファイルを示します。 ルート要素はjnlpで、2つのサブ要素があります: resourcesおよびapplication-desc。
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="8">
<resources>
<jar href="https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jar" />
</resources>
<application-desc main-class="Notepad"/>
</jnlp>
この例は、アプリケーション属性の設定を含むJNLPファイルの基本的な概要を示しています。 ルート要素はjnlpで、4つのサブ要素があります: information, security, resourcesおよびapplication-desc。 また、Java Web Startでは、applet-desc要素を使用したアプレットの起動もサポートされています。
<?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要素spec属性: この属性が1.0以上でないと、このリリースで正しく動作しません。 デフォルト値は「1.0+」です。 したがって、通常はこの属性を省略してもかまいません。 このバージョンでは、バージョン1.0、1.5.0、6.0、6.0.10、6.0.18、7.0および8.20の仕様がサポートされることに注意してください。 spec="8.20+"を指定する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システム・プロパティの先頭が比較され、一致するものが検索されます。 たとえば、"Windows"のos属性値は、"Windows 8"オペレーティング・システムと"Windows 10"オペレーティング・システムの両方に一致します。
リストに指定するオペレーティング・システムの名前にスペースが含まれている場合は、スペースがオペレーティング・システム名の一部であることを示すために、バックスラッシュを使用します。 次の例は、特に"ウィンドウズ8"と"Windows 10"に一致します:
<resources os="Windows\ 8 Windows\ 10">
<jar href="hello.jar"/>
</resources>
resources要素に指定可能なサブ要素は、jar、nativelib、j2se、property、package、extensionの6つです。 この開発者ガイドでは、package要素とextension要素については説明しません。
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.7、および1.8です。 (通常、プラットフォーム・バージョンには、マイクロ・バージョン番号(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 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 assertions */
-disablesystemassertions /* disable system assertions */
-Xmixed /* mixed mode execution (default) */
-Xint /* interpreted mode execution only */
-Xnoclassgc /* disable class garbage collection */
-Xincgc /* enable incremental gc. */
-Xbatch /* disable background compilation */
-Xprof /* output cpu profiling data */
-Xdebug /* enable remote debugging */
-Xfuture /* enable strictest checks */
-Xrs /* reduce use of OS signals */
-XstartOnFirstThread
-XX:+CMSClassUnloadingEnabled /* It needs to be combined with -XX:+CMSPermGenSweepingEnabled */
-XX:+CMSIncrementalPacing /* Automatic adjustment of the incremental mode duty cycle */
-XX:+CrashOnOutOfMemoryError /* When enabled, when an out-of-memory error occurs, the JVM
crashes and produces text and binary crash files if core
files are enabled. */
-XX:+DisableExplicitGC /* Disable calls to System.gc() */
-XX:+ExitOnOutOfMemoryError /* When enabled, the JVM exits on the first occurrence of an
out-of-memory error. Use it if you prefer restarting an
instance of the JVM rather than handling out-of-memory
errors. */
-XX:+ForceTimeHighResolution /* use high resolution timer */
-XX:-ForceTimeHighResolution /* use low resolution (default) */
-XX:+HeapDumpOnOutOfMemoryError
-XX:-ParallelRefProcEnabled
-XX:+PrintStringDeduplicationStatistics
-XX:+PrintGCDetails /* Gives some details about the GCs */
-XX:+PrintGCTimeStamps /* Prints GCs times happen to the start of the application */
-XX:+PrintHeapAtGC /* Prints detailed GC info including heap occupancy */
-XX:+PrintTenuringDistribution /* Gives the aging distribution of the allocated objects */
-XX:+TraceClassUnloading /* Display classes as they are unloaded */
-XX:-TransmitErrorReport
-XX:+UseConcMarkSweepGC /* Turns on concurrent garbage collection */
-XX:+UseG1GC
-XX:+UseGCTimeLimit
-XX:-UseGCTimeLimit
-XX:+UseGCOverheadLimit
-XX:-UseGCOverheadLimit
-XX:+UseParallelOldGC
-XX:-UseParallelOldGC
-XX:+UseParallelOldGCCompacting
-XX:-UseParallelOldGCCompacting
-XX:+UseParallelGC
-XX:-UseParallelGC
-XX:+UseParallelScavenge
-XX:-UseParallelScavenge
-XX:+UseStringDeduplication
-XX:+ScavengeBeforeFullGC
-XX:-ScavengeBeforeFullGC
次の引数も加えることができます。
-ea: /* enable assertions for classes ... */
-enableassertions: /* enable assertions for classes ... */
-da: /* disable assertions for classes ... */
-disableassertions: /* disable assertions for classes ... */
-verbose: /* enable verbose output */
-Xmn /* set the young gen size; this is
an unspecified and undocumented
JVM option being added here only
as a convenience to end users */
-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 /* set maximum direct memory size */
-XX:PrintCMSStatistics /* If > 0, Print statistics about the concurrent collections */
-XX:SurvivorRatio /* Sets the ratio of the survivor spaces */
-XX:MaxTenuringThreshold /* Determines how much the objects may age */
-XX:CMSMarkStackSize
-XX:CMSMarkStackSizeMax
-XX:CMSIncrementalDutyCycleMin /* The percentage which is the lower bound on the duty cycle */
-XX:ParallelCMSThreads
-XX:ParallelGCThreads /* Sets the number of parallel GC threads */
-XX:CMSInitiatingOccupancyFraction /* Sets the threshold percentage of the used heap */
-XX:+UseCompressedOops /* Enables compressed references in 64-bit JVMs */
-XX:GCPauseIntervalMillis
-XX:MaxGCPauseMillis /* A hint to the virtual machine to pause times */
-XX:+CMSIncrementalMode /* Enables the incremental mode */
-XX:MaxMetaspaceSize /* Sets an upper limit on memory used for class metadata */
-XX:StringDeduplicationAgeThreshold
-XX:GCTimeLimit
-XX:GCHeapFreeLimit
property要素はシステム・プロパティを定義します。これらのプロパティは、System.getProperty、System.setPropertiesの両メソッドを使って取得できます。 この要素では、2つの属性nameとvalueを必ず指定する必要があります。 たとえば、
<property name="key" value="overwritten"/>JNLPファイルに設定されるプロパティは、通常はVMが起動してからアプリケーションが呼び出されるまでの間に、Java Web Startにより設定されます。 一部のプロパティは「安全」とみなされ、Java呼出しコマンド行で引数「-Dkey=値」と指定して渡すことができます。 次のプロパティは、事前定義されたセキュアなプロパティであり、この方法でVMに渡されます。
apple.laf.useScreenMenuBar
awt.useSystemAAFontSettings
com.sun.management.jmxremote.local.only
http.agent
http.keepAlive
java.awt.Window.locationByPlatform
java.awt.smartInvalidate
java.awt.syncLWRequests
java.net.preferIPv4Stack
java.util.Arrays.useLegacyMergeSort
javaplugin.lifecycle.cachesize
javaws.cfg.jauthenticator
jdk.jar.maxSignatureFileSize
jdk.map.althashing.threshold
sun.awt.disableMixing
sun.awt.enableExtraMouseButtons
sun.awt.erasebackgroundonresize
sun.awt.keepWorkingSetOnMinimize
sun.awt.noerasebackground
sun.java2d.d3d
sun.java2d.dpiaware
sun.java2d.noddraw
sun.java2d.opengl
sun.lang.ClassLoader.allowArraySyntax
sun.locale.formatasdefault
sun.nio.ch.bugLevel
sun.nio.ch.disableSystemWideOverlappingFileLockCheck
swing.boldMetal
swing.metalTheme
swing.noxp
swing.useSystemFontSettings
プロパティ名の前に「jnlp.」または「javaws.」を付けることで、必要に応じて、新しいセキュアなプロパティを定義することもできます。
ノート: セキュアとみなされるためには、プロパティ名と値は次の要件を満たす必要があります。
署名されていない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に単純にロードする以上に複雑な設定を必要とする、プラットフォーム固有のネイティブ・コードをインストールするために使用されます。