あなたはこれを行うことができます。
- 現在行っているように、アプリを jar にビルドします。
- スイッチを指定して javafxpackager を実行し
-createjar
、既存の jar に基づいて新しい jar を作成します。新しい jar には、 を使用して jar を実行できるようにするマニフェスト エントリが含まれますjava -jar app.jar
。
- javafxpackager を
-deploy
および-native
スイッチで再度実行し、jar と Java ランタイムをインストーラー付きのネイティブ アプリケーション (自己完結型アプリケーション) としてパッケージ化します。
重要なコマンドは次のとおりです。
echo make an executable jar file
$JAVA_HOME/bin/javafxpackager -createjar -srcdir . -appclass start.HelloWorldSwing -srcfiles HelloWorldSwing.jar -noembedlauncher -outdir . -outfile HelloWorld.jar
echo package the jar and java runtime as a native application with installer
$JAVA_HOME/bin/javafxpackager -deploy -srcdir . -srcfiles HelloWorld.jar -outdir . -outfile HelloWorld -appclass start.HelloWorldSwing -native -name HelloWorld
以下は、Java アプリケーションのビルド、そのネイティブ アプリケーション パッケージの作成、ネイティブ パッケージのインストール、インストールされたアプリケーションの実行に使用できる完全な OS X スクリプトです。このスクリプトは、javafxpackagerを使用してネイティブ アプリケーション パッケージを作成します。インストールされたアプリケーションは、JavaFX を使用しない Swing アプリケーションです (javafxpackager が JavaFX コードだけで動作する必要がないことを示すためです)。また、スクリプト内の javafxpackager コマンドは、以前に jar コマンドで作成された jar を使用して、javafxpackager が生のクラス ファイルで動作する必要がないことを示していますが、以前に他のツールチェーンで構築された jar を入力として受け取ることができます。
Windows アプリや Linux RPM または DEB パッケージなど、他のオペレーティング システムおよびパッケージ形式のパッケージを作成できます。各 OS のインストールをカスタマイズする方法の詳細については、javafxpackager のドキュメントを参照してください。コマンド ライン javafxpackager ツールを使用する場合は、ターゲット オペレーティング システムごとにパッケージ化シェル スクリプトを作成する必要があります。javafx ant パッケージ化タスクを使用すると、複数のオペレーティング システムで同じパッケージング ant スクリプトを使用できます。Ant パッケージ タスクを使用してネイティブ バンドルを構築する例については、Ensemble や SwingInterop など の javafx サンプルのソースを参照してください。
Windows インストーラーをビルドするには、javafxpackager のドキュメントで説明されているように、マシンに追加のフリーウェア ソフトウェアをインストールする必要があります。rpm をビルドするには、rpmbuild パッケージ ユーティリティをマシンにインストールする必要があります。現在、単一のマシンからすべての OS のネイティブ パッケージをビルドすることはできません (そのマシン タイプに固有のネイティブ パッケージのみをビルドできます)。
javafxpackager ネイティブ パッケージは、多くの Java アプリケーション デプロイメント オプションの 1 つにすぎないことに注意してください。その他には、webstart、実行可能な jar ファイル、サード パーティのパッケージ オプション、およびブラウザー組み込みアプリケーションが含まれます。アプリケーション、ユーザー、開発スキル、複雑さの快適さのレベルに最も適したオプションを選択してください。
私が過去に使用した代替ツールチェーンは、UNIX ソフトウェアのネイティブ パッケージ (特に企業向けのサーバー側アプリケーション) で優れた成功を収めましたが、 nexus yum プラグインを使用してnexusリポジトリにデプロイするjenkinsを使用して作成されたrpm mavenプラグインビルドを使用した mavenです。このツールチェーンを使用すると、コード チェックインから、yum依存関係管理を使用して一連のデプロイ可能なパッケージに移行できます。ただし、この代替ツールセットを使用するには少し高度な知識が必要であり、javafxpackager が実行するさまざまなプラットフォームをカバーしていません。