Java jarファイル用のWindowsインストーラーを作成するにはどうすればよいですか?

Nov 28 2020

jarファイル用のWindowsインストーラーを作成したいと思います。デプロイ先のターゲットコンピューターにjre / jdkをインストールする必要はありません。

jpackage(Java 14の一部)を試しましたが、うまくいきませんでした。次のコマンドを試しました。

jpackage --input target/ --name my_pkg --main-jar NtbnsProj.jar --main-class myJFrame --type exe --java-options '--enable-preview'

my_pkg-1.0.exeが生成されますが、実行できません。

この時点で、サードパーティのツールも試してみるつもりです。install4jを試しましたが成功しませんでした。私が見つけた別のウェブサイトは、InnoSetupCompilerでinstall4jを使用すると言っていました。これはもっと複雑で、どちらも機能しませんでした。WiXツールセットが機能するかもしれないと思いました。

誰かがステップバイステップの説明を提供できる場合、特にソリューションにinstall4jが含まれている場合は、何かを見逃す可能性のあるさまざまなステップがあります。新しいバージョンのinstall4jを使用していましたが、オンラインチュートリアルやビデオと一致しませんでした。メニューの選択が大幅に変更されました。おそらく、古いバージョンのinstall4jを使用する必要があります。

関連記事を参照してください:JREがインストールされていないMacで実行するためにJava jarファイルをパッケージ化するにはどうすればよいですか?

回答

1 DuncG Nov 28 2020 at 22:31

続行する前に、アプリが直接実行されていることを再確認し、問題を修正してください。

java -cp NtbnsProj.jar myJFrame 

動作しているように見えjpackage、インストーラーが生成されましたmy_pkg-1.0.exe。実行my_pkg-1.0.exeするときは、このファイルがあることを確認してから、次のように実行します。

C:\Program Files\my_pkg\my_pkg.exe

それが失敗した場合は、追加の引数を指定してjpackageを再実行します--win-console --app-version 1.1。これはmy_pkg-1.1.exe、コンソールを有効にして生成されます。再インストールして実行するとC:\Program Files\my_pkg\my_pkg.exe、実際の問題を示す有用なエラーメッセージが報告される場合があります。

--app-version毎回アップグレードしない場合、Windowsは既存のリリース1.0を更新しないか、同じバージョンの再ビルドを再適用する前にアンインストールする必要がありますmy_pkg-1.0.exe。警告なしに実行および停止するだけです。

app-verを自動的に設定する方法については、この投稿を参照してください。

macdays Dec 03 2020 at 07:31

私はそれを動かしました!@DuncGは、私の質問に答えるのに非常に役立ちました。jarファイルがあったディレクトリにたくさんの余分なファイルがあったので、新しいディレクトリを作成して、その中にNtbnsProj.jarだけを入れました。次に、次のコマンドを実行しました。jpackage --name Test --input . --main-jar NtbnsProj.jar