< 目次

JNLPファイルの構文


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

はじめに

このリリースで使用している形式は、「Java Network Launching Protocol & API Specification (JSR-56) version 8.20」に指定されている形式と同じです。このガイドでは、JNLPファイルでもっともよく使われる要素について説明しています。この形式の完全な説明については、仕様を参照してください。


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





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


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

はい




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

はい


height

アプレットの高さ(ピクセル)。

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つのサブ要素informationsecurityresourcesapplication-descがあります。さらに、Java Web Startはapplet-desc要素を使用することで、アプレットの起動もサポートします。要素の詳細は次のとおりです。

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は、アイコンのサイズ変更を必要に応じて自動的に行います。

省略可能な属性widthheightを使えば、イメージのサイズを指定できます。

省略可能な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つのサブ要素desktopmenuが含まれます。

association 要素: 省略可能なassociation要素は、特定の拡張子および特定のMIMEタイプのプライマリ・ハンドラとしてオペレーティング・システムに登録してほしいという、JNLPクライアントへのヒントです。association要素には必ず拡張子とMIMEタイプ属性が割り当てられます。association要素を含める場合は、offline-allowed要素も含めるか、アプリケーションを見つけて実行できるようにjnlp要素のhref属性を設定する必要があります。

related-content 要素: 省略可能なrelated-content要素は、READMEファイル、ヘルプ・ページ、登録ページへのリンクなどの関連コンテンツの追加要素を、JNLPクライアントへのヒントとして説明します。アプリケーションは、このコンテンツをデスクトップ統合に含めるように要求します。related-content要素には、hrefとtitleの必須属性が割り当てられています。次の2つのサブ要素のいずれかを割り当てることもできます。

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要素に指定可能なサブ要素は、jarnativelibj2sepropertypackageextensionの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>

デフォルトでは、jarnativelibリソースが定期的にダウンロードされます。つまり、これらはアプリケーションが起動される前にダウンロードされ、アプリケーションを実行しているJVMでローカルに使用可能になります。jarnativelib要素では、リソースを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の起動時に優先的に使用される仮想マシンの一連の引数を指定します。

<j2se version="1.4+" java-vm-args="-ea -Xincgc"/>

注意: 引数はセキュアとみなされる場合にのみ使用されます。セキュアなプロパティに関する注意を参照してください。

このバージョンでは、次の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 assertione */
-disablesystemassertions        /* disable system assertione */
-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 */
-XX:+ForceTimeHighResolution    /* use high resolution timer */
-XX:-ForceTimeHighResolution    /* use low resolution (default) */
-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:+CMSClassUnloadingEnabled   /* It needs to be combined with -XX:+CMSPermGenSweepingEnabled */
-XX:+CMSIncrementalPacing       /* Automatic adjustment of the incremental mode duty cycle */
-XX:+UseConcMarkSweepGC         /* Turns on concurrent garbage collection */
-XX:-ParallelRefProcEnabled
-XX:+DisableExplicitGC          /* Disable calls to System.gc() */
-XX:+UseG1GC
-XX:+HeapDumpOnOutOfMemoryError
-XX:-TransmitErrorReport
-XstartOnFirstThread
-XX:+UseStringDeduplication
-XX:+PrintStringDeduplicationStatistics
-XX:+UseParallelOldGC
-XX:-UseParallelOldGC
-XX:+UseParallelOldGCCompacting
-XX:-UseParallelOldGCCompacting
-XX:+UseParallelGC
-XX:-UseParallelGC
-XX:+UseGCTimeLimit
-XX:-UseGCTimeLimit
-XX:+UseGCOverheadLimit
-XX:-UseGCOverheadLimit
-XX:+ScavengeBeforeFullGC
-XX:-ScavengeBeforeFullGC
-XX:+UseParallelScavenge
-XX:-UseParallelScavenge

次の引数も加えることができます。

-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に渡されます。

    sun.java2d.noddraw,
    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,
    sun.awt.keepWorkingSetOnMinimize,
    swing.noxp,
    swing.boldMetal,
    awt.useSystemAAFontSettings,
    sun.java2d.dpiaware,
    sun.awt.disableMixing,
    sun.lang.ClassLoader.allowArraySyntax,
    java.awt.smartInvalidate"
    apple.laf.useScreenMenuBar,
    java.net.preferIPv4Stack,
    java.util.Arrays.useLegacyMergeSort",
    sun.locale.formatasdefault,
    sun.awt.enableExtraMouseButtons,
    com.sun.management.jmxremote.local.only,
    sun.nio.ch.bugLevel,
    sun.nio.ch.disableSystemWideOverlappingFileLockCheck,
    jdk.map.althashing.threshold
    javaplugin.lifecycle.cachesize

プロパティ名の前に「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に単純にロードする以上に複雑な設定を必要とする、プラットフォーム固有のネイティブ・コードをインストールするために使用されます。


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