Java Platform, Standard Editionデプロイメント・ガイド
目次      

3 アプリケーションの実行モード

JDK 8u451では、JavaFXはJava SE 8の一部として含まれなくなりました。 詳細は、https://www.oracle.com/javase/javafxを参照してください。

このトピックでは、JavaおよびJavaFXアプリケーションのデプロイに使用可能な、アプリケーションの様々な実行モードについて説明します。

Javaアプリケーション・モデルの主な機能の1つは、1つのアプリケーションを書き込み、それを様々な方法で簡単にデプロイできることです。 ユーザーは、同じアプリケーションを、デスクトップ上やブラウザ内で実行したり、ブラウザ内のリンクから起動したりできます。

ただし、実行モード間で違いがあり、アプリケーションの開発時に考慮する必要があります。

この節の内容は以下のとおりです。

3.1 実行モード

表3-1では、Javaアプリケーションをデプロイできる実行モードについて説明します。

表3-1 Javaの実行モード

実行モード 説明

スタンドアロン・プログラムとして実行

アプリケーション・パッケージはローカル・ドライブで使用できます。 ユーザーは、java -jar MyApp.jarなどのJava起動ツールを使用して、またはアプリケーションJARファイルをダブルクリックして起動します。

Java Web Startを使用してリモート・サーバーから起動

ユーザーは、Webページのリンクをクリックして、リモートWebサーバーからアプリケーションを起動します。 ダウンロードすると、デスクトップ・ショートカットからJava Web Startアプリケーションを起動することもできます。

ブラウザに埋込み

Javaコンテンツは、Webページに埋め込まれ、リモートWebサーバーでホストされます。

自己完結型アプリケーションとして起動

アプリケーションは、ローカル・ドライブにインストールされ、JREのプライベート・コピーを使用してスタンドアロン・プログラムとして実行します。 アプリケーションは、そのオペレーティング・システムの他のネイティブ・アプリケーションと同じ方法で(たとえばデスクトップ・ショートカットやメニュー・エントリを使用して)起動できます。


それぞれの実行環境には欠点があります。 たとえば、リモート・アプリケーションの場合、アプリケーションをネットワークからロードする必要があるため、ロードのフェーズが非常に長くなることがあります。 ローカル・ドライブで実行するアプリケーションの場合は、これはそれほど問題ではありません。

3.2 機能の相違点の理解

図3-1では、異なる環境において異なる動作をする機能の一部を示しています。 次の各項では、この図の詳細を説明します。

図3-1 デプロイメント・タイプの機能

図3-1の説明が続きます
「図3-1 デプロイメント・タイプの機能」の説明

3.2.1 JavaFXアプリケーションのプリローダーのサポート

プリローダーは、アプリケーションのロードおよび初期化の進捗状況に関する通知を受信する小規模のJavaFXアプリケーションです。 プリローダーはすべての実行モードで使用されますが、実行モードに応じて、プリローダー実装は異なるイベントのセットを受信し、最適な動作が異なる可能性があります。

たとえば、自己完結型アプリケーション、スタンドアロン実行モードまたはショートカットからの起動時では、ロードするものがないため、プリローダーはロード進捗イベントを取得しません。 プリローダー実装および動作の相違点の詳細は、第13章「JavaFXアプリケーションのプリローダー」を参照してください。

3.2.2 組込みのプロキシのサポート

適切にパッケージ化されたJavaアプリケーションには、JRE構成設定に従って初期化されたプロキシ設定があります。 アプリケーションがWebページに埋め込まれている場合、デフォルトでは、プロキシ設定は現在のブラウザから取得されます。 それ以外の場合、システムのプロキシ設定が使用されます。 プロキシ設定は、デフォルトではすべての実行モードで初期化されます。

3.2.3 ショートカットによるデスクトップ統合

大部分のオペレーティング・システムでは、アプリケーションは、2回目以降の起動が簡略化され、デスクトップ・ショートカットを作成したり、プログラム・メニューまたはドックへのリンクを追加したりすることでユーザーのデスクトップと統合できます。

デスクトップ・ショートカットの組込みサポートは、自己完結型アプリケーションおよびWeb配備アプリケーションで使用できます。

3.2.4 サンドボックスでの実行

デフォルトでは、ブラウザから起動されたりWebページに埋め込まれたりするJavaアプリケーションは、サンドボックスと呼ばれる制限された環境で実行されます。 アプリケーションをサンドボックスに制限すると、次の利点があります。

  • ローカル・ファイルに影響を及ぼす可能性のある有害なコードからユーザーを保護する。

  • ネットワーク上のデータに対してアクセスや破壊を試みる可能性のあるコードから企業を保護する。

サンドボックスに制限されたアプリケーションは、次の操作を実行できません。

  • クライアント・リソース(ローカル・ファイル・システム、実行可能ファイル、システム・クリップボード、プリンタなど)へのアクセス。

  • サードパーティ製のサーバー(つまり元のサーバー以外のサーバー)からのリソースへの接続またはリソースの取得。

  • ネイティブ・ライブラリのロード。

  • SecurityManagerの変更。

  • ClassLoaderの作成。

  • 特定のシステム・プロパティの読取り。 禁止されているシステム・プロパティのリストは、システム・プロパティに関する項を参照してください。

3.2.5 自動更新

ブラウザで実行される、または以前にWebページからインストールされたJavaアプリケーションは、アプリケーションがロードされた元の場所で、アプリケーションへの更新を自動的にチェックします。 このチェックはアプリケーションが起動するたびに行われ、デフォルトでは、更新はバックグラウンドで実行されます。 更新が検出されると、アプリケーションは自動的に更新されます。

スタンドアロン・アプリケーションおよび自己完結型アプリケーションの場合、更新のハンドリングはユーザーが担当します。

3.2.6 配備ツールキット

配備ツールキットは、次の2つの重要な機能を実行します。

  • 更新を管理することによって、JavaアプリケーションのWebデプロイメントを簡略化します。

  • アプリケーションの起動の待機中のユーザーの操作性を向上させます。

アプリケーションの起動フェーズはユーザーの満足度の重要な要素であるため、これら2つの機能はつながっています。 たとえば、配備ツールキットでは、ユーザーがJREをインストールしたことを確認し、インストールしていない場合、アプリケーションの実行前にインストールすることを提案します。ユーザー側に必要な労力は少しです。

配備ツールキットは、JavaScript APIを提供し、Webページに埋め込まれたりブラウザから起動されるアプリケーションでのみ使用できます。

配備ツールキットの詳細は、第19章「ブラウザでのデプロイメント」を参照してください。

3.2.7 ホストWebページとの通信

Webページに埋め込まれたアプリケーションは、JavaScriptを使用してWebページと通信できます。 通信を開始するには、JavaFXアプリケーションはJavaFX HostServices APIからWebコンテキストを取得する必要があります。 他の実行環境の場合、Webコンテキストへの参照を取得しようとすると、nullが返されます。

例3-1は、新しいページに移動するためにJavaScriptを使用する例を示しています。

例3-1 JavaScriptを使用した新しいページへの移動

final HostServices services = getHostServices();
JSObject js = services.getWebContext();
js.eval("window.location='http://javafx.com'");

JavaFXアプリケーションの場合の、JavaScriptを使用したブラウザとの通信の詳細は、第16章「JavaおよびJavaScript」を参照してください。

Javaアプレットの場合の、JavaScriptを使用したブラウザとの通信の詳細は、アプレットからのJavaScriptコードの呼出しに関するトピックを参照してください。

3.2.8 プラットフォーム依存性の管理

Javaコンテンツを実行するには、最新バージョンのJREが必要です。 アプリケーションが自己完結型ではないかぎり、JREをユーザーのシステムにインストールする必要があります。

必要なバージョンのJREがユーザーにない場合、インストールするように指示されます。 しかし、たとえば次に示すように、JREのシステム・インストールおよび自動更新機能が不十分な状況があります。

  • ユーザーにJREをインストールするための管理権限がない。

  • ユーザーが他のアプリケーション用に古いバージョンのJREを必要としている。

  • アプリケーションで使用する正確なバージョンのJREを設定する。

  • 配布チャネルが外部フレームワークへの依存性を許可しない。

自己完結型アプリケーションとしてアプリケーションをデプロイすると、これらの問題は解決します。 JREはアプリケーション・パッケージに付属しており、ユーザーは別にインストールする必要はありません。 自己完結型アプリケーション・パッケージは、.zipファイルの配布と同様に単純にすることができ、ターゲット・オペレーティング・システムに固有のテクノロジを使用して、インストール可能なパッケージにラップすることができます。 自己完結型アプリケーション・パッケージの詳細は、第5章「パッケージ化の基本」を参照してください。

目次      

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