プライマリ・コンテンツに移動
Java Platform, Standard Editionデプロイメント・ガイド
リリース9
E90918-01
目次へ移動
目次

前
次

1 はじめに

このトピックでは、JavaおよびJavaFXアプリケーションのデプロイの基本について説明します。

この項の内容は次のとおりです。

基本的な手順

アプリケーションを公開する準備はできていますか。次の基本的なデプロイメントの手順に従います。

  1. ユーザーによるアプリケーションへのアクセスおよびアプリケーションの実行方法を決定します。

    アプリケーションは、ユーザーのデスクトップでのデプロイ、Webページへの埋込み、またはブラウザからの起動が可能です。

    注意:

    アプレットAPIおよびJava Plug-inは、JDK 9で使用可能でありサポートされていますが、将来のリリースでの削除に備えて非推奨とマークされています。アプレットおよび埋込みJavaFXアプリケーションに代わるものには、Java Web Startおよび自己完結型アプリケーションがあります。
  2. アプリケーション・パッケージを作成します。

    アプリケーション・パッケージは、次のアイテムで構成されます。

    • アプリケーションの実行に必要なJARファイル。アプリケーションをWebページに埋め込んだりブラウザから起動したりする場合、有効な署名証明書を使用してJARファイルに署名する必要があります。

    • Webページに埋め込まれたりブラウザから起動されるアプリケーションのデプロイメント記述子またはJNLPファイル。

    • 自己完結型アプリケーションのJRE。Javaパッケージ化ツールではjlinkツールを使用してカスタム・ランタイムが作成され、パッケージのサイズが縮小されます。

  3. アプリケーションをWebページに埋め込んだりブラウザから起動したりする場合、Webページを設定します。

    Webページには、ページに埋め込まれたアプリケーションを実行するためのHTML要素またはJavaScriptコードが必要です。Java Web Startを使用してブラウザからアプリケーションを起動するには、JavaScriptコードが必要です。Javaパッケージ化ツールによって、Webページにコピーできる、両方のタイプを実行するためのJavaScriptコードのあるHTMLファイルが生成されます。

  4. ユーザーがアクセスする場所にパッケージをコピーします。

    Webページに埋め込まれたりブラウザから起動されるアプリケーションには、通常、Webサーバーが使用されます。デスクトップおよび自己完結型アプリケーションは、ユーザーに直接配信したり、アプリケーション・ストアを介して使用可能にしたりすることができます。

実行環境の選択

JavaおよびJavaFXアプリケーションは、複数の実行環境で実行できます。ユーザーによるアプリケーションへのアクセス方法によって、アプリケーションのデプロイ方法が決まります。次のオプションを使用できます。

  • ネイティブ・アプリケーションとして起動

    ユーザーは、自己完結型アプリケーションをインストールし、メニューまたはデスクトップ・ショートカットから起動できます。

  • デスクトップ・アプリケーションとして起動

    ユーザーは、Java起動ツールを使用してコマンド行から、またはアプリケーションのJARファイルをダブルクリックして、アプリケーションを起動できます。

  • ブラウザから起動

    ユーザーは、ブラウザ内のリンクをクリックして、アプリケーションをダウンロードおよび起動できます。

  • Webページで表示

    Webページがロードされると、アプリケーションが起動します。

    注意:

    アプレットAPIおよびJava Plug-inは、JDK 9で使用可能でありサポートされていますが、将来のリリースでの削除に備えて非推奨とマークされています。アプレットおよび埋込みJavaFXアプリケーションに代わるものには、Java Web Startおよび自己完結型アプリケーションがあります。

それぞれの環境には、メリットとデメリットがあります。

パッケージの作成

デフォルトでは、Javaパッケージ化ツールにより、アプリケーションの実行に必要な次のファイルのコレクションが生成されます。

  • アプリケーションJARファイル(または大規模なアプリケーションの複数のJARファイル)

    Webページに埋め込まれたりブラウザから起動されるアプリケーションには、有効な署名証明書を使用して署名する必要があります。パッケージ化ツールまたはjarコマンドは、JARファイルへの署名に使用できます。

  • デプロイメント記述子を含むJNLPファイル

    デプロイメント記述子は、アプリケーション・コンポーネント、プラットフォーム要件および起動ルールを記述するXMLファイルです。

  • Webページからアプリケーションの埋込みや起動を行うJavaScriptコードを含むHTMLファイル

アプリケーションは、プラットフォーム固有の自己完結型アプリケーションとしてパッケージ化することもできます。自己完結型アプリケーションには、すべてのアプリケーション・リソース、JREおよび起動ツールが含まれます。これらのアプリケーションでは、オペレーティング・システムのネイティブ・アプリケーションと同じインストールおよび起動操作が提供されます。

自己完結型アプリケーションは、zipファイルまたはインストール可能なパッケージとして配布できます。Windowsの場合はEXEまたはMSI、macOSの場合はDMG、PKGまたはmac.appStore、Linuxの場合はRPMまたはDEBです。

自己完結型アプリケーションには次の利点があります。

  • ターゲット・プラットフォームのネイティブ・アプリケーションと似ています。

    ユーザーは、使い慣れたインストーラでアプリケーションをインストールし、通常の方法で起動します。

  • 互換性が煩わしくありません。

    アプリケーションで使用されるJREのバージョンは、アプリケーション開発者によって制御されます。

  • JREをインストールする必要なしに、新しいシステムに簡単にデプロイされます。

  • ZIPまたはユーザー・レベルのインストーラを使用すると、管理権限がなくてもデプロイメントが行われます。

自己完結型アプリケーションのパッケージ化では、自己完結型アプリケーション・パッケージの生成方法について説明します。

パッケージ化ツール

アプリケーションのパッケージ化には、次の3つの異なるツールが使用できます。

NetBeans IDE

Netbeans IDEを使用すると、多くの作業が行われます。「プロジェクト・プロパティ」を開いて、JavaFXアプリケーション・シーンの優先ディメンションを指定します。「消去してビルド」を使用してプロジェクトをビルドします。アプリケーション・パッケージはdistフォルダに生成されます。アプリケーションをテストするには、このフォルダを開き、実行環境に応じてHTML、JNLPまたはJARファイルをダブルクリックします。

自己完結型アプリケーションをパッケージ化するには、NetBeans IDEでbuild.xmlスクリプトをカスタマイズします。基本的なビルドを参照してください。

Antタスク

別のIDEを使用している場合、JDKに含まれているAntタスクを使用して、ビルド後のステップとしてJavaパッケージ化を追加できます。例1-1は、JavaFXの例Colorful CirclesのAntパッケージ・タスクを示しています。Colorful Circlesの完全な例は、ColorfulCircles.zipファイルをダウンロードします。

nativeBundles="all"属性を<fx:deploy> Antタスクに追加すると、使用可能なすべてのパッケージ(スタンドアロン・アプリケーション・パッケージ、実行中のプラットフォームに応じた1つ以上の自己完結型アプリケーション・パッケージ、およびWebデプロイメント・パッケージ)が作成されます。インストール可能なパッケージは、パッケージ化の際に使用可能なサード・パーティ製のソフトウェアに基づいて作成されます。たとえば、Windows上にInno SetupとWiXの両方がある場合、3つのパッケージ(アプリケーションが含まれるフォルダ、.exeインストーラ・ファイルおよび.msiインストーラ・ファイル)を取得します。nativeBundles属性を含む単純なAntタスクを例1-1に示します。

アプリケーションをWebページに埋め込んだりブラウザから起動したりする場合、必要なJARマニフェスト属性を<fx:jar>タスクおよび<fx:signjar>タスクに含めます。

注意:

Javaパッケージャ・ツールの<fx:signjar>タスクは、将来のリリースでの削除に備えてJDK 9で非推奨です。また、これは、マルチリリースJARファイルでも動作しません。かわりに標準的なAnt signjarタスクを使用してください。

例1-1 ColorfulCirclesアプリケーションのすべてのパッケージを作成するAntタスク

<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"      
        uri="javafx:com.sun.javafx.tools.ant"
        classpath="${JAVA_HOME}/lib/ant-javafx.jar"/>
 
<fx:jar destfile="dist-web/ColorfulCircles.jar">
    <fx:application mainClass="colorfulcircles.ColorfulCircles"/>
    <fileset dir="build/classes/">
        <include name="**"/>
    </fileset>
</fx:jar>
 
<fx:deploy width="800" height="600" outdir="dist-web" 
        outfile="ColorfulCircles" nativeBundles="all">
    <fx:info title="Colorful Circles"/>
    <fx:application name="Colorful Circles example"
            mainClass="colorfulcircles.ColorfulCircles"/>
    <fx:resources>
        <fx:fileset dir="dist-web" includes="ColorfulCircles.jar"/>
    </fx:resources>
</fx:deploy> 

Javaパッケージャ・コマンド行ツール

Antを使用できない場合またはコマンド行ツールを使用する場合、JDKに付属のJavaパッケージャ・ツールを使用します。Javaパッケージャ・ツールには、アプリケーションをパッケージ化するためのいくつかのコマンドがあります。Java Platform, Standard Editionツール・リファレンスのjavapackagerを参照してください。

迅速なテスト・ビルドを行うには、javapackager -makeallコマンドを使用できます。このコマンドに簡単なオプションを追加すると、次の例に示すように、ソース・コードがコンパイルされ、javapackager -createjarコマンドとjavapackager -deployコマンドが結合されます。

javapackager -makeall -appclass colorfulcircles.ColorfulCircles 
    -name "Colorful Circles" -width 800 -height 600

注意:

Javaパッケージャ・ツールの-makeallコマンドは、将来のリリースでの削除に備えてJDK 9で非推奨です。

コマンドは単純なプロジェクトを迅速にビルドすることのみを目的としているため、-makeallコマンドがサポートしているコマンドの動作をカスタマイズするオプションは限られています。-makeallコマンドでは、入力ファイルと出力ファイルについて次のことを前提としています。

  • ソース・ファイルおよび他のリソース・ファイルは、メイン・プロジェクト・ディレクトリの下のsrcという名前のディレクトリに配置する必要があります。

  • 作成されるパッケージは、常にdistという名前のディレクトリに生成され、ファイル名はすべてdistという接頭辞で始まります。

  • デフォルトでは、-makeallコマンドは自己完結型アプリケーション・パッケージをビルドしようとします。これが不可能な場合、他の実行モードにデプロイできるように、JAR、HTMLおよびJNLPファイルが生成されます。

注意:

Webページに埋め込まれたJavaFXアプリケーションの場合、ステージの幅および高さを常に指定する必要があります。

アプリケーションが稼働する準備ができている場合、-makeallコマンドではなく-createjarおよび-deployコマンドを使用します。-createjarおよび-deployコマンドには、かなり多くのオプションがあります。たとえば次のように、-deployコマンドに-nativeオプションを追加して、自己完結型アプリケーション・パッケージを作成できます。

javapackager -deploy -native -outdir packages -outfile ColorfulCircles 
    -srcdir dist -srcfiles ColorfulCircles.jar 
    -appclass colorfulcircles.ColorfulCircles 

ヒント:

Antタスクでは、Javaパッケージャ・ツールよりオプションの柔軟性がさらに高くなります。

Webページの作成

アプリケーションをWebページに埋め込んだりブラウザから起動したりする場合、ユーザーがアプリケーションにアクセスできるWebページを設定する必要があります。Webページに埋め込まれたアプリケーションを実行するには、Java Plug-inを使用します。ブラウザから起動されたアプリケーションを実行するには、Java Web Startを使用します。

注意:

アプレットAPIおよびJava Plug-inは、JDK 9で使用可能でありサポートされていますが、将来のリリースでの削除に備えて非推奨とマークされています。アプレットおよび埋込みJavaFXアプリケーションに代わるものには、Java Web Startおよび自己完結型アプリケーションがあります。

Webページに埋め込まれ、実行にJava Plug-Inを使用するアプリケーションには、<applet>要素か<object>要素、またはJavaScriptコードを使用できます。ブラウザからアプリケーションを起動するためにJava Web Startを呼び出すリンクまたはボタンを作成するには、JavaScriptコードを使用します。Javaパッケージ化ツールによって、Webページにコピーできる、両方のタイプを実行するためのJavaScriptコードが生成されます。

パッケージ化ツールによって生成されるHTMLページは、アプリケーションの単純なテスト・ページです。これには、アプリケーションの起動および埋込みを行うサンプルJavaScriptコードが含まれており、これを自身のWebページにコピーできます。手動でコピーを行わないようにするには、JavaScriptコードを既存のWebページに挿入するためのアプリケーションのパッケージ化のHTMLテンプレートを使用することを検討します。

アプリケーションの配布

使用中のアプリケーション・パッケージおよびWebページがある場合、それらを適切な場所にコピーして、アプリケーションをユーザーが使用できるようにします。

  • アプリケーションをWebページに埋め込んだりブラウザから起動したりする場合、パッケージおよびWebページを、それらがロードされるWebサーバーにコピーします。

  • アプリケーションがデスクトップ・アプリケーションである場合、ユーザーがダウンロードする場所にアプリケーションをコピーします。自己完結型アプリケーションでは、インストール可能なパッケージおよび必要なJREが提供され、ユーザーにとってアプリケーションのインストールおよび実行が容易になります。

基本より高度な情報

このトピックでは、パッケージ化ツールで提供されるデフォルトの処理を利用する、単純なアプリケーションのデプロイに必要な最低限の情報を提供します。より高度なアプリケーションには、たとえば次のような追加の要件があります。

  • アプリケーションのロード時に表示されるカスタム・スプラッシュ画面を含める。

  • アプリケーションのロード中に表示されるカスタム進捗バーを含める。

  • アプリケーションと、アプリケーションが埋め込まれるWebページとの間の通信に、JavaScriptコードを使用する。

  • 埋込みJavaFXコンテンツを含むSwingおよびSWTアプリケーションをデプロイする。

  • アプリケーションの実行が安全であることをユーザーに保証するための、セキュリティ・ダイアログおよびダイアログに含まれる警告の数を最小限にする。

また、Javaチュートリアルの「デプロイメント」コースでも、Webページに埋め込まれたアプリケーションやブラウザから起動されたアプリケーションのデプロイに役立つ情報を提供しています。