このセクションでは、次のトピックについて説明します。
Java Web Startは、ユーザーが任意のWebブラウザからワン・クリックでフル装備のアプリケーションを起動できるようにするアプリケーション・デプロイメント・テクノロジです。 複雑なインストール手順を経ることなく、アプリケーションをダウンロードして起動することができます。
Java Web Startでは、ユーザーはWebページ上のリンクをクリックしてアプリケーションを起動します。 アプリケーションが自分のコンピュータに存在しない場合、Java Web Startは必要なすべてのファイルを自動的にダウンロードします。 その後、コンピュータ上のファイルがキャッシュされるため、ユーザーはいつでもアプリケーションを再起動できます - デスクトップ上のアイコンから、またはブラウザのリンクから。 アプリケーションの起動に使用されるメソッドに関係なく、アプリケーションの最新バージョンが常に表示されます。
Java Web Startの基盤となるテクノロジは、Java Network Launching Protocol & API (JNLP)です。 この技術は、Java Community Process (JCP)によって開発されました。 Java Web Startは、JNLP仕様のリファレンス実装(RI)です。 JNLPテクノロジは、JNLPファイルを定義します。JNLPファイルは、アプリケーションの起動方法を記述する標準ファイル形式です。 JNLP仕様は「JSR 56: Javaネットワーク起動プロトコルとAPI」で入手できます。
技術的な観点からは、Java Web Startには、アプリケーションのデプロイに使用する魅力的なプラットフォームとなるいくつかの主要なメリットがあります。
それらの利点は次のとおりです。
Java Web Startは、Java Platform、Standard Editionに書き込まれたアプリケーションの起動専用に構築されています。 したがって、1つのアプリケーションをwebサーバーで使用可能にし、Windows、Linux、macOSなど、様々なプラットフォームにデプロイできます。
Java Web Startは、複数リビジョンのJava Platform, Standard Editionをサポートしています。 したがって、各アプリケーションは、Java SE 8など、自身の動作に必要となる特定バージョンのプラットフォームを要求できます。 いくつかのアプリケーションは、競合を引き起こすことなく、異なるプラットフォームのリビジョンで同時に実行できます。
Java Web Startを使用すると、Webブラウザとは独立してアプリケーションを起動できます。 この方法を使用すると、アプリケーションをオフラインで実行できます。オフライン状態では、ブラウザによるアプリケーションの起動は不便な場合や不可能な場合があります。 また、デスクトップ・ショートカットからアプリケーションを起動して、ネイティブ・アプリケーションを起動するのと同様のWebデプロイ・アプリケーションを起動することもできます。
Java Web Startは、Java Platformのセキュリティ機能を利用します。 サンドボックス・アプリケーションは、ローカル・ディスクとネットワーク・リソースへのアクセスが制限された保護環境内で実行されます。 アプリケーションの初回起動時には、ユーザーが実行に同意する必要もあります。
Java Web Startで起動されたアプリケーションは、ローカルにキャッシュされます。 したがって、既にダウンロードされたアプリケーションは、従来からインストールされているアプリケーションと同様に起動されます。
Java Web Startでは、インターネットからコードを実行できます。 HTTPSなどのメカニズムは、インターネットから取得したコードの来歴を検証しようとするが、必ずしもそうできるわけではありません。 したがって、Java Web Startはコード署名を利用して、コードが信頼できるパーティからのものかどうかを判断します。
シグネチャされていないコードは拒否され、シグネチャの検証後、ユーザーはコード・シグネチャ者が信頼できるかどうかを判断するよう求められます。 信頼できない署名者の署名されていないコードまたはコードには実行権限が付与されないことが非常に重要です。 つまり、ユーザーはセキュリティ警告およびプロンプトに注意を払う必要があります。 「セキュリティとコード署名」を参照してください。
「デプロイメント・ルール・セット」 (DRS)機能を使用すると、コード署名者を信頼するかどうかをユーザーが決定できないようにできます。 かわりに、組織はこれを決定するセキュリティ・ポリシーを指定できます。 したがって、組織がDRSを使用する場合は、エンド・ユーザーにダイアログを表示しないようにできます。 信頼できる署名者はプロンプトなしでコードを起動できますが、信頼できないコードと署名されていないコードはプロンプトなしで拒否できます。
「例外サイト・リスト」機能を使用すると、セキュリティ・チェックによってブロックされるリッチ・インターネット・アプリケーション(RIAs)をユーザーが実行できるようになります。 例外サイト・リストには、ユーザーが実行させたいRIAをホストするサイトのURLが含まれています。 例外サイト・リストに載っているサイトから起動されるRIAは、適切なセキュリティ・プロンプトを表示して実行することが許可されます。
Java Web Startユーザーは、JRE 8 (特に、Java Web Startを起動するJREバージョン)のクリティカル・パッチ・アップデートをすべて適用する必要があります。 自動更新をオンにすると、JREを最新の状態に保つことができます。
Java Web StartアプリケーションおよびJNLPを管理できる代替プロバイダ(IcedTea-Webなど)があります。 Oracleは、これらのプロバイダがJDKが実行するすべてのセキュリティ・チェックを実行するかどうかを主張しません。 これらのプロバイダに依存する場合は、システムで実行する予定の新しいテクノロジと同様に慎重に評価してください。 Oracleでは、これらのプロバイダがシグネチャされていないコードの実行を許可していないこと、およびシグネチャされたコードを信頼する前にシグネチャからの情報を使用してユーザー承認をリクエストしていることを確認することをお薦めします。
Java Web StartはJava Platform, Standard Edition開発キット(JDK)およびJava Runtime Environment (JRE)に含まれており、Javaプラットフォームのセキュリティ機能が含まれています。
Java Web Startを使えば、JavaテクノロジベースのアプリケーションをWebから直接起動できます。 アプリケーションの起動方法には、次の3通りがあります。
どの方法を使った場合も、アプリケーションが起動されるたびに、Java Web StartはWebサーバーに接続し、アプリケーションの更新版があるかどうかをチェックします。
WebブラウザにJNLPアプリケーションへのリンクを含むページを表示し、そのリンクをクリックします。
セキュリティ・ダイアログ・ボックスがポップアップし、アプリケーション・コードにだれがデジタル署名したかに基づいてアプリケーションの提供元に関する情報が表示され、要求されたアクセス・レベルも表示されます。 アプリケーションが実行されるのは、そのベンダーをユーザーが信頼すると決めた場合だけです。
以上がJava Web Startの使い方に関するすべてですが、これはどのような仕組みで動作するのでしょうか。 アプリケーションを起動するHTMLリンクは、実際のところ、単なる標準のHTMLリンクです。 ただし、他のWebページを指すかわりに、JNLPファイルと呼ばれる特殊な設定ファイルを指しています。 Webブラウザは、そのファイルのファイル拡張子またはMIMEタイプを検査し、そのファイルがJava Web Start用のものであることを認識します。 その後に、ダウンロードされたJNLPファイルを引数としてJava Web Startを起動します。 Java Web Startは、JNLPファイルの指示に従って、アプリケーションをダウンロード、キャッシュ、および実行します。
Java Web Startテクノロジは、Javaテクノロジで開発されたWebデプロイ・アプリケーションのデスクトップおよびスタート・メニューのアプリケーションのショートカットを自動的に作成できます。 ショートカットの設定の制御には、Javaコントロール・パネルを使用します。 ショートカットは、Java Web Startキャッシュ・ビューアの、インストール・ショートカット・メニュー項目を使用して追加することも可能です。
Java Web Startソフトウェアのプロキシ設定が正しくなかった場合、ファイアウォールの外側にあるアプリケーションを起動できません。 Java Web Startソフトウェアは、システム上のデフォルト・ブラウザからプロキシ設定を自動的に検出しようとします。 Java Web Startテクノロジは、Webプロキシ自動設定スクリプトの大部分をサポートしています。 ほとんどすべての環境でプロキシ設定を検出できます。
また、Java Web Startのコントロール・パネルを使って、プロキシ設定を表示または編集することもできます。 詳細は、「Javaコントロール・パネル」を参照してください。