バージョン6でのJava Web Startの拡張機能


「policy」および「check」属性を持つ、新しい<update>要素がサポートされました。update要素には、Java Web StartがWeb上で更新をチェックする方法、および起動前に更新が入手可能であることがわかった場合の動作に関するアプリケーション設定を指定します。
以前のバージョンのJava Web Startでは、<offline-allowed>要素がオーバーロードされた場合、次の2つの点が明らかになりました。1つは、「オフライン」モードでのアプリケーション実行が許可されたことです。(アプリケーションをオフライン・モードで実行するには、コマンド行に「-offline」引数を追加するか、キャッシュ・ビューアを使用します。)もう1つは、アプリケーション(オフライン・モードで実行されていない場合)の起動前に、更新のチェックがタイム・アウトした可能性があることです。更新のチェックがタイム・アウトした場合、アプリケーションはキャッシュから起動され、更新のチェックがバックグラウンドで続行されます。
6.0では、<update>要素およびcheck属性の登場に伴い、<offline-allowed>要素は後者の意味を持たなくなりました。デフォルト値は<update check="timeout"/>です。この動作は、以前のバージョンで<offline-allowed>を指定した場合と同じです。以前に<offline-allowed>を省略した場合の動作を再現するには、<update check="always"/>を指定する必要があります。バックグラウンドで更新をチェックしながら、キャッシュからの即時起動を常に実行する場合は、3番目の値<update check="background"/>を指定できます。2番目の属性「policy」を使用して、アプリケーションの起動前に更新が入手可能であることが判明している場合の動作を指定します。常に更新を取得することも、ユーザーに指定を求めるようにすることもできます。policy属性値には、「always」(デフォルト)、「prompt-update」、「prompt-run」のいずれかを指定できます。

以前のバージョンでは、APIに引数として渡すことのできるURLは、APIの種類にかかわらず、実行中のアプリケーションのjnlpファイルに記述されたリソースへのURLに限定されていました。この制限が変更され、署名および信頼されたコードに関しては制限がなくなりました。また、信頼されないコードに対する制限は、jnlpファイルへの記述に基づくものではなく、同じコード・ベースに基づくものになりました。
さらに、jnlpファイルへのURL自体が許可されるようになったため、DownloadService.removeResource()の呼出しを使って、キャッシュからアプリケーション全体を削除したり、DownloadService.loadResource()を使ってアプリケーションをインポートしたりすることが可能になりました。
この変更により、どのようなjnlpファイルにもリストされていないリソースをアプリケーションで使用できるようになります。たとえば、ロケール設定をen_xxに決定すれば、使用可能なリソースjarをjnlpファイルに記述しなくても、アプリケーションはDownloadServiceを使ってresources_en_xx.jarをロードできます。(サポートするロケールを、jnlpファイルを変更せずに動的に追加することが可能)。

別の重要な仕様変更は、サンドボックスの定義の明確化です。これは、デフォルトのサンドボックスのみを対象としており、その実装ではサンドボックスの許可しない操作を許可するようユーザーに自由に求めることができます。1.5.0では、印刷に関してこれが実現されていました。つまり、awt内の通常の印刷apiを使用するだけで、サンドボックスを展開してアプリケーションからプリンタへのアクセスを許可することができました(ユーザーが同意した場合)。6.0では、これがソケット接続でも可能になりました。このため、信頼されないアプリケーションがurlへの接続を試みた場合でも、ユーザーは接続を許可するよう求められます。

Java Web Start Version 6.0以降でのみ使用されるjnlpファイルでは、<java>要素を使用して<j2se>タグを置き換えることができます。(この主な理由は、Java Platform Standard Editionがもはやj2seとは呼ばれないためです。)下位互換性を維持するため、<j2se>タグの機能は引き続き有効です。<java>要素は、<j2se>要素と同一です。

Java Web Startアプリケーションとファイル拡張子およびmimeタイプとの関連付けの作成時に、アプリケーション用のデフォルト・アイコンを使用するのではなく、関連付けごとに別個のアイコンを指定できるようになりました。また、説明も指定できます。

JNLPClassLoaderが、URLClassLoaderを拡張するように書き換えられました。これには、いくつかの強力な利点があります。 
まず、Jarインデックスが完全にサポートされます。複数のjarファイルが存在し、すべてのjarファイルをインデックス化するjarメイン・ファイル内にjarインデックスを作成する場合、追加する各jarに遅延のマークを付けて、内部のリソースまたはクラスが参照されるまでダウンロードされないようにできます。これにより、以前の不要な部分およびパッケージ要素に不要のマークが付けられ、遅延jarが使用に先立ってダウンロードされないことが保証されます。
第2に、JNLPClassLoaderがURLClassLoaderを拡張するようになったため、アプリケーションはgetURLs()を呼び出してjnlpファイル内に記述されているjar要素(またはjnlpファイルに記述されていなくても、DownloadService APIを使用してダウンロードされたjar要素、前述の説明を参照)の一覧を取得できます。
最後に、ClassLoader.getResource()の呼出しで返されるURLが、ネット上の項目の適切なJAR URLになります。以前のバージョンでは、この返されるURLはキャッシュ内のファイルurl項目のjar urlでした。URLClassLoaderを拡張することにより、キャッシュされた場所(存在する場合)は意味がなくなり、Java Web Startがキャッシュなしで動作することが可能になりました。

Java Web Startでは、2つのアイコン形式「.png」および「.ico」が新たにサポートされます。これにより、指定したアイコンを、用途に応じて異なる形式に変換する必要がなくなります。また、kind="shortcut"も指定できるようになり、Java Web Startは幅と高さのヒント情報を参照するようになりました。たとえば、次のように指定した場合のことを考えてみましょう。
<icon kind="shortcut" href="menushortcut.ico" width="16" height="16"/>
<icon kind="shortcut" href="desktopshortcut.ico" width="32" height="32"/>
この場合、作成されたデスクトップおよびメニュー・ショートカットすべてで、別個のイメージを指定できます(注: Java Web Startの使用するアイコン・サイズは、デスクトップ・ショートカットの場合は32X32、メニュー・ショートカットの場合は16X16です)。

Windowsの「プログラムの追加と削除」内のJava Web Startアプリケーション用エントリに、jnlpファイルの情報ブロックから取得した発行元、発行元のWebサイト、インストール日付、およびアプリケーション・アイコンが含まれるようになりました。

Java Web Startにより作成されたデスクトップ・ショートカット用に、jnlpファイル内の<description>要素を使って、アプリケーションの説明を含むツールヒントが生成されるようになりました。

JnlpDownloadServletに$$hostnameと$$siteの両方のマクロが含まれるようになりました。拡張により、$$hostnameマクロにはホスト名が含められます。$$siteマクロには、Webサイト・アドレスがWARコンテキスト部分なしで含められます。

セキュリティ保護されたvm引数とプロパティの最新のリストについては、開発者ガイドを参照してください。

Java Web StartとJava Plug-in共通の拡張機能

Java Web StartとJava Plug-inで表示されるすべてのダイアログおよび画面が、User Experienceチームの協力のもとに再設計され、よりユーザー・フレンドリで、直感的かつ使いやすいものになりました。

Java Web StartとJava Plug-in間で、キャッシュ・メカニズムおよびダウンロード・エンジン全体が再設計および統合されました。 
これにより、Java Plug-inで利用できた機能がJava Web Startで新たに利用可能になり、Java Web Startで利用できた機能がJava Plug-inで新たに利用できるようになりました。

注: キャッシュ形式については全体が変更されたため、以前のものとは互換性がなくなりました。キャッシュ形式が以前のままであることを前提とする既存のコードは、Java Web Start用であれ、Java Plug-in用であれ、動作しません。Java Web Startキャッシュ内の既存のアプリケーションは、Java Web Startアプリケーションの初回実行時またはキャッシュ・ビューアの起動時(「javaws -viewer」を使用)にアップグレードされ、新規キャッシュ形式に変換されます。同様に、システム・キャッシュは、Java Web Startをシステム・モードで最初に実行したとき、または「javaws -system」を起動したときにアップグレードされ、新しい形式に変換されます。

Java 6のAWTで追加された新しいモーダリティ機能を使用することで、アプリケーションにモーダル・ダイアログが表示されている場合でも、Javaコンソールとの対話処理を実行できるようになりました。

Java Web StartおよびJava Plug-inは、証明書の検証用にCRL (Certificate Revocation Lists)およびOCSP (Online Certificate Status Protocol)をサポートしています。

Javaコントロール・パネルに、デフォルトのSSLハンドシェーク・プロトコルを選択するオプションが追加されました。
デフォルトではSSLv3およびSSLv2が設定されますが、後でユーザーや企業がTSLに変更できます。






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