ユーザーが最新バージョンの JRE にアップグレードしなくても、実行可能な JAR で配布できるようにしたいと考えています。システムに JRE をインストールせずに jar を実行できるように、JRE を JAR にパッケージ化するにはどうすればよいですか?
3 に答える
Java Portableをサブディレクトリに配置し、バッチ/bash スクリプトまたはLaunch4jを使用して jar を起動します。
10 年後、私は同じ問題に遭遇しました。数日調べた後、明らかに解決策はまだありません。これが私が見つけた最良のものです。
Java (JRE) をバンドルし、7zip SFX で Java アプリを起動する: Java アプリを実行可能ファイルに変換するhttps://mark.koli.ch/bundle-java-the-jre-and-launch-a-java-app-with -7zip-sfx
編集
Inno Setup と NetBeans に基づいて、それを行う別の方法を見つけました。jar を exe に変換することに関する検索の結果として表示されることがよくあります。すべては、NetBeans IDE のネイティブ パッケージングを使用して行われます。
その結果、 AppData\Local\YourProjectNameにフォルダーを作成するスタンドアロンの .exe インストーラー (YourProjectName.exe) が作成されます。そのフォルダーには、.exe であるランチャーと、Java をインストールせずにソフトウェアを実行するために必要なすべてのファイルがあります。
記事に記載されているものとまったく同じバージョンのツールを使用する必要があります。そうしないと、少なくとも私にとっては機能しません。明確ではないもう 1 つのことは、プロジェクトは Ant プロジェクトを使用した Java でなければならないということです。少なくとも、Gradle または Maven でそれを行う方法が見つかりませんでした。
また、Java の古いi586バージョンをインストールする必要がありました (JDK 1.8 i586 を試してみましたが、動作しました)。これは、ソフトウェアを実行しようとすると JDK 13 がエラー (dll の欠落) を引き起こすためです。私はJDK 13 x64でのみ試しましたが、バージョンではなくアーキテクチャに問題がある可能性があります。NetBeans 11 に同様のことが起こったとしても、.exe ランチャーは機能しませんでしたが、.jar を見つけて実行すると機能しました。そのため、NetBeans 8 を使用することになりました。