この章の内容は次のとおりです。
このリリースで使用している形式は、「Java Network Launching Protocol & API Specification (JSR-56) version 6.0」に指定されている形式と同じです。リッチ・インターネット・アプリケーション(RIA)のJava Network Launch Protocol (JNLP)ファイルはXMLファイルです。すべての要素およびその属性は小文字で入力する必要があります。次の表は、JNLPファイルで最もよく使用される要素について説明しています。この形式の完全な説明については、仕様を参照してください。
要素 | 説明 | 属性 | 必須 |
---|---|---|---|
|
JNLPファイルでメインとなるXML要素。すべて |
はい |
|
|
アプリケーションとそのソースを説明する他の要素を含みます。 |
いいえ |
|
|
アプリケーションのタイトルを指定します。 |
該当なし |
いいえ |
|
アプリケーションのプロバイダを指定します。 |
該当なし |
いいえ |
|
アプリケーションのホーム・ページ。 |
いいえ |
|
|
アプリケーションを説明する短い文。 |
いいえ |
|
|
ユーザーがアプリケーションを識別できるようにアイコンを示します。 |
いいえ |
|
|
クライアント・システムがネットワークから切断されてもこのアプリケーションが稼働できることを示します。 |
該当なし |
いいえ |
|
使用すると、アプリケーションのデスクトップの統合に対する設定方法を示すことができます。1.5.0で追加されました。 |
いいえ |
|
|
使用すると、アプリケーションの設定で、ショートカットをユーザーのデスクトップに配置するかどうかを示すことができます。1.5.0で追加されました。 |
該当なし |
いいえ |
|
使用すると、アプリケーションの設定で、メニュー項目をユーザーのスタート・メニューに配置するかどうかを示すことができます。1.5.0で追加されました。 |
いいえ |
|
|
特定の拡張子および特定のMIMEタイプのプライマリ・ハンドラとしてオペレーティング・システムに登録する必要があることをJNLPクライアントに伝えるために使用できます。この要素を含める場合は、 |
いいえ |
|
|
アプリケーションに統合できる関連コンテンツの追加部分を示します。1.5.0で追加されました。 |
いいえ |
|
|
JNLPクライアントがアプリケーションの更新を処理する方法の設定を示します。6.0で追加されました。 |
いいえ |
|
|
拡張権限を要求します。 |
該当なし |
いいえ |
|
すべてのアクセス権を使用できる状態でアプリケーションを実行できるよう要求します。 |
該当なし |
いいえ |
|
J2EEアプリケーション・クライアント環境のセキュリティ仕様を満たす権限セットでアプリケーションが実行されるように要求します。 |
該当なし |
いいえ |
|
アプリケーションに必要なすべてのリソースを示します。 |
はい |
|
|
アプリケーションの実行に使用するJavaのバージョンを指定します。 |
いいえ |
|
|
アプリケーションのクラス・パスの一部であるJARファイルを指定します。 |
いいえ。ただし、メインJNLPファイルがJARファイルを指定しない場合、リソース・セクションに少なくとも1つの |
|
|
ルート・ディレクトリにネイティブ・ライブラリを含むJARファイルを指定します。 |
いいえ |
|
|
このアプリケーションで使用する追加の |
いいえ |
|
|
|
いいえ |
|
|
どのJARファイルにどのパッケージを実装するかをJNLPクライアントに示す場合に使用できます。 |
いいえ |
|
|
|
いいえ |
|
|
アプリケーションのJNLPファイルであることを示します。 |
JNLPファイルに次のいずれかの要素を含める必要があります。
|
|
|
各argumentには、アプリケーションの |
該当なし |
いいえ |
|
アプレットのJNLPファイルであることを示します。 注意: アプレットAPIは、JDK 9で使用可能でありサポートされていますが、将来のリリースでの削除に備えて非推奨とマークされています。アプレットのかわりに、Java Web Startまたは自己完結型アプリケーションなどの代替を検討してください。 |
JNLPファイルに次のいずれかの要素を含める必要があります。
|
|
|
アプリケーションに渡すことができるパラメータのセット。この要素は、 |
いいえ |
|
|
コンポーネント拡張機能のJNLPファイルであることを示します。 |
JNLPファイルに次のいずれかの要素を含める必要があります。
|
|
|
インストールされた拡張機能のJNLPファイルであることを示します。 |
JNLPファイルに次のいずれかの要素を含める必要があります。
|
JNLPファイルはXMLドキュメントです。JNLPファイルの例を参照してください。
カスタマイズをあまり必要としない基本的なアプリケーションの場合、JNLPファイルを単純にできます。複雑なアプリケーションの場合は、JNLPファイルに追加要素を追加できます。
要素は、JNLP要素で説明されています。
基本的なJNLPファイル
この例は単純なJNLPファイルを示しています。ルート要素はjnlp
で、この要素には2つのサブ要素resources
およびapplication-desc
があります。
<?xml version="1.0" encoding="utf-8"?> <jnlp spec="9"> <resources> <jar href="https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jar" /> </resources> <application-desc main-class="Notepad"/> </jnlp>
アプリケーション・カスタマイズを含む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+
です。したがって、通常はこの属性を省略してもかまいません。Java Web StartのJDK 9バージョンでは、バージョン9までのすべてのバージョンのspecがサポートされることに注意してください。 以前のバージョンのJava Web Startでは、JDKリリースの時点で使用可能であった仕様(spec)のバージョンのみがサポートされます。spec="9+"
を指定するJNLPファイルは、このバージョンで動作しますが、以前のバージョンのJava Web Startでは動作しません。
codebase
属性: JNLPファイルのhref
属性に指定された相対URLはすべて、このURLを基準として処理されます。
href
属性: 存在する場合、この属性は、アプリケーションのダウンロードおよび実行に使用されるJNLPファイルを示します。存在しない場合は、アプリケーションの起動に使用するメソッドによってはJava Web StartがJNLPファイルの場所を認識しない場合もあり、このことがセキュリティ・ダイアログ・ボックスに影響を及ぼす可能性があります。
os
属性: この属性には、この要素のオペレーティング・システム名のリストが含まれます。os
属性の詳細については、後述のresources
要素の説明を参照してください。
title
要素: アプリケーションの名前。
vendor
要素: アプリケーション・ベンダーの名前。
homepage
要素: 単一の属性href
を含みます。これは、アプリケーションのホーム・ページを示すURLです。この要素は、Javaアプリケーション・キャッシュ・ビューアが、アプリケーションの詳細情報を含むWebページにユーザーをリダイレクトする際に使用されます。
description
要素: アプリケーションに関する短い文。description要素は省略可能です。kind
属性は、descriptionの用途を定義します。kind
には、次の値が有効です。
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、ICO、またはPNG形式のイメージ・ファイルへのHTTP URLを含みます。これらのアイコンは、次の場合にアプリケーションを表現するために使用されます。
ダウンロード中は64x64のアイコンが表示されます。Javaアプリケーション・キャッシュ・ビューア内とデスクトップ・ショートカット内では32x32のアイコンが使用されます。Java Web Startは、アイコンのサイズ変更を必要に応じて自動的に行います。
省略可能な属性width
とheight
を使えば、イメージのサイズを指定できます。
省略可能なkind
属性には、次の値のいずれかを指定できます。
default
: 指定されたイメージはJavaアプリケーション・キャッシュ・ビューア内で使用されます。また、icon
要素に特定のkind
属性が指定されていない場合にも使用されます。kind
属性を指定しないことは、default
値を指定することと同じです。splash
: 指定されたイメージは、アプリケーションの2回目以降の起動時にスプラッシュ・イメージとして使用されます。リソースがダウンロードされる前の、アプリケーションの初回起動時は、デフォルトのスプラッシュ・イメージが使用されます。shortcut
: 指定されたイメージは、デスクトップ・ショートカット内で使用されます。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
要素にはextensions
およびmime-type
属性を指定する必要があります。association
要素を含める場合は、offline-allowed
要素も含めるか、アプリケーションを見つけて実行できるようにjnlp
要素のhref
属性を設定する必要があります。
related-content
要素: 省略可能なrelated-content
要素は、READMEファイル、ヘルプ・ページ、登録ページへのリンクなどの関連コンテンツの追加要素を、JNLPクライアントへのヒントとして説明します。アプリケーションは、このコンテンツをデスクトップ統合に含めるように要求します。related-content
要素には、href
とtitle
の必須属性があります。次のサブ要素のいずれかを含めることもできます。
description
要素: 関連コンテンツの簡単な説明。icon
要素: JNLPクライアントがユーザーへの関連コンテンツを識別するために使用できるアイコン。各サンドボックス・アプリケーションは、アプレットのサンドボックスに類似した、制限された実行環境で実行されます。security要素を使うことで、無制限のアクセス権を要求できます。
all-permissions
要素が指定された場合、アプリケーションはクライアント・マシンおよびローカル・ネットワークに対する完全なアクセス権を持ちます。すべてのJARファイルに署名する必要があります。ユーザーは、証明書を受け入れてアプリケーションの実行に同意するよう求められます。
update
要素は、Java Web Startがアプリケーションの更新を処理する方法の設定を示します。
update
要素には、次に示す2つの属性をオプションで含めることができます。
check
属性: check
属性は、JNLPクライアントが更新を確認する必要がある時期についての設定を示します。有効な値は次のとおりです。
always
: アプリケーションを起動する前に更新を確認します。
timeout
(デフォルト): アプリケーションを起動する前に、タイム・アウトになるまで更新を確認することを意味します。更新確認が完了せずにタイム・アウトした場合、アプリケーションの起動後に、更新確認がバックグラウンドで継続して行われます。
background
: バックグラウンドでの更新の確認中にアプリケーションを起動します。
policy
属性: policy
属性は、アプリケーションの起動前に更新が可能であることがわかったとき、JNLPクライアントがアプリケーション更新を処理する方法の設定を示します。有効な値は次のとおりです。
always
(デフォルト): ユーザーに通知することなく、更新をダウンロードします。
prompt-update
: ユーザーに更新バージョンをダウンロードして実行するかどうか、またはキャッシュされたバージョンを起動するかどうかを尋ねます。
prompt-run
: ユーザーに更新バージョンをダウンロードして実行するかどうか、またはキャンセルしてアプリケーションの実行を停止するかどうかを尋ねます。
次に例を示します。
<update check="always" policy="prompt-update">
resources
要素は、アプリケーションに含まれるJavaクラス・ファイル、ネイティブ・ライブラリ、システム・プロパティなど、すべてのリソースを指定するために使用します。 リソース定義を特定のオペレーティング・システム、アーキテクチャまたはロケールに制限するには、os
、arch
およびlocale
属性を使用します。
os
属性には、リソースのオペレーティング・システム名のリストが含まれます。たとえば、それぞれ異なるos
属性を指定した複数のresources
定義を使用して、複数のオペレーティング・システムのネイティブ・ライブラリを指定できます。
os
属性には、スペースで区切られたオペレーティング・システム名のリストが含まれます。実行時に、os
の値とos.name
システム・プロパティの先頭が比較され、一致するものが検索されます。たとえば、os
属性の値が「Windows」であれば、「Windows 8」および「Windows 10」の両オペレーティング・システムに一致します。
リストに指定するオペレーティング・システムの名前にスペースが含まれている場合は、スペースがオペレーティング・システム名の一部であることを示すためにバックスラッシュを使用します。次の例は、「Windows 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
属性は、リソースが定期的にダウンロードされるか、不定期にダウンロードされるか、あるいは進捗のカスタム実装を含んでいるかの制御に使用します。次に例を示します。
<jarhref="sound.jar" download="lazy"/> <nativelibhref="native-sound.jar" download="eager"/> <jarhref="progress.jar" download="progress"/>
download="progress"
が指定されているJARファイルは、定期的にダウンロードされます。また、他のリソースのダウンロード中に進捗を示すためにも使用できます。
j2se
要素は、アプリケーションがサポートされるJava Platform, Standard Edition Runtime Environment (JRE)のバージョンおよびJava仮想マシンの標準パラメータを指定します。 複数のJREを指定する場合、サポート対象のJREを優先順にリストに示します。最も望ましいバージョンを最初に指定します。次に例を示します。
<j2se version="9" initial-heap-size="64m" max-heap-size="128m"/> <j2se version="1.8.0_101+" 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および9です。(通常、プラットフォーム・バージョンには、マイクロ・バージョン番号(1.4.2など)は含まれません。)
正確な製品バージョン(実装バージョン)を、href
属性を使用して指定することもできます(1.7.0_111や1.8.0_92など)。次に例を示します。
<j2se version="1.7.0_111" href="http://java.sun.com/products/autodl/j2se"/
または
<j2se version="1.8.0_92" href="http://java.sun.com/products/autodl/j2se"/>
プラットフォーム・バージョンが指定された場合(つまり、href
属性が指定されなかった場合)、Java Web Startは、インストール済の非General Availability (GAマイルストン)のJREを、要求に一致するものとみなしません。たとえば、次の要求では、インストール済の9-ea JREは要求に一致するものとみなされません。
<j2se version="9+"/>
j2se
要素のjava-vm-args
属性は、java
の起動時に優先的に使用される仮想マシンの一連の引数を指定します。
<j2se version="9+" java-vm-args="-ea -Xincgc"/>
このバージョンでは、次の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) */ -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, -XstartOnFirstThread, -XX:+UseG1GC, -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, -XX:-TransmitErrorReport,
次の文字列のいずれかで開始する任意の引数もサポートされます。
-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, -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:StringDeduplicationAgeThreshold, -XX:GCTimeLimit", -XX:GCHeapFreeLimit", -XX:MarkStackSize, -XX:MarkStackSizeMax, -XX:ConcGCThreads,
property
要素はシステム・プロパティを定義します。これらのプロパティは、System.getProperty
、System.setProperties
の両メソッドを介して取得できます。これには2つの必須属性name
およびvalue
があります。次に例を示します。
<property name="key" value="overwritten"/>
セキュアだとみなされるプロパティは、VMの起動後、アプリケーションの呼出し前に、Java Web Startによって設定されます。これらのプロパティは、呼び出されると-Dkey=value
引数としてjava
コマンドに渡されます。次のプロパティはセキュアだとみなされます。
署名付きJNLPファイルに設定されているプロパティ
次の文字列のいずれかが前に付いた、署名されていないJNLPファイルに設定されているシステム・プロパティ: jnlp.
、javaws.
またはjavapi
事前定義されたセキュアなプロパティ:
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
application-desc
要素は、JNLPファイルの起動対象が、アプレットではなくアプリケーションであることを示します。application要素には省略可能な属性main-class
属性があり、アプリケーションのメイン・クラス(実行を開始する必要があるクラス)の名前を指定できます。
Javaアプリケーションの場合、メイン・クラスはpublic static void main(String argv[])
メソッドを含むクラスです。
JavaFXアプリケーションの場合、メイン・クラスはjavafx.application.Application
を拡張するクラスです。
main-class
属性を省略できるのは、JNLPファイル内に指定された最初のJARファイルにMain-Class
属性を含むマニフェスト・ファイルが含まれている場合です。
省略可能なtype
属性を使用して、アプリケーションのタイプ(デフォルトのJavaまたはJavaFXのいずれか)を指定できます。Java Web Startでは、呼び出す方法を知るためにJavaFXアプリケーションであるかどうかがわかっている必要があります。
アプリケーションへの引数を指定するには、1つ以上のネストされたargument
要素を含めます。次に例を示します。
<application-desc main-class="Main"> <argument>arg1</argument> <argument>arg2</argument> </application-desc>
アプレットの場合と同様に、1つ以上のparam
要素を含めることによって、type
属性がJavaFX
に設定されたアプリケーションにパラメータを追加できます。次に例を示します。
<application-desc type="JavaFX" main-class="fxApp"> <param name="key1" value="value1"/> <param name="key2" value="value2"/> </application-desc>
(省略可能な) progress-class
属性を使用すると、この名前のクラスがjavax.jnlp.DownloadServiceListenerインタフェースを実装することを示すことができます。このクラスは最初にロードし、ダウンロードされ検証される他のリソースの進捗を示すために使用できます。
Java Web Startは、Javaアプレットの起動をサポートします。このサポートにより、既存コードのJava Web Startへの移行が容易になります。
注意:
アプレットAPIは、JDK 9で使用可能でありサポートされていますが、将来のリリースでの削除に備えて非推奨とマークされています。アプレットは、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インタフェースを実装することを示すことができます。このクラスは最初にロードし、ダウンロードされ検証される他のリソースの進捗を示すために使用できます。
注意:
アプレットは、Java Web Startで動作するためにJARファイル内にパッケージ化する必要があります。component-desc
要素は、JNLPファイルがアプリケーションまたはアプレットではなく、アプリケーション、アプレットまたは他の拡張機能のリソースとして使用できる拡張機能であることを示します。
通常、コンポーネント拡張機能は、複数のアプリケーション間で共有される、または個別のセキュリティが必要なリソース・セットを取り除くために使用されます。
(省略可能な) progress-class
属性を使用すると、この名前のクラスがjavax.jnlp.DownloadServiceListenerインタフェースを実装することを示すことができます。このクラスは最初にロードし、ダウンロードされ検証される他のリソースの進捗を示すために使用できます。