68

Java アプリケーションを配布したいとします。

単一の実行可能ファイルとして配布したいとします。アプリケーションとそのすべての外部依存関係の両方を 1 つのファイルにまとめた .jar を簡単に作成できました (Ant のハッキングが必要です)。

ここで、Windows で .exe ファイルとして配布したいとします。優れたツール (Launch4j など) があれば、それは簡単です。

しかし、ここで、エンド ユーザーが適切な JRE (またはその点で言えば任意の JRE) がインストールされていることに依存したくないとします。アプリと一緒に JRE を配布したいのですが、この JRE でアプリを実行する必要があります。Windows インストーラーの実行可能ファイルを作成し、必要なすべての JRE ファイルを含むフォルダーを埋め込むのは簡単です。ただし、単一ファイルのアプリではなく、インストーラーを配布しています。

アプリケーションとJRE の両方を、(インストーラーではなく) アプリケーション ランチャーとして機能する .exe ファイルに埋め込む方法はありますか?

4

13 に答える 13

24

AvianおよびProGuardツールキットを使用してみてください。Avian では、軽量の仮想マシンをアプリに埋め込むことができます。Linux、MacOS、Windows、および iOS がサポートされています。また、ProGuard を使用すると、大きな jar ファイルを圧縮して埋め込みの準備を整えることができます。

于 2012-07-19T08:11:34.937 に答える
16

これを行う新しいツールがあります: Packr
https://github.com/libgdx/packr

于 2014-07-21T09:43:22.910 に答える
7

かなりの数のオプションがありますが、商業的にはこれは非常に優れています。

http://www.excelsior-usa.com/jet.html

GCJ と VMKit という 2 つの主要なオープン ソース オプションがあります。

http://gcc.gnu.org/java/およびhttp://vmkit.llvm.org/

その他のより長いパスには、IKVM.NET が含まれます。

http://www.ikvm.net/

EXEに静的にコンパイルできる.NET JVMはどれですか

于 2010-02-13T20:31:14.540 に答える
4

アプリケーションと JRE の両方を、(インストーラーではなく) アプリケーション ランチャーとして機能する .exe ファイルに埋め込む方法はありますか?

商用ツールで問題がなければ、install4jはこの問題を非常にスムーズに解決します ( 「機能」ページを参照)。アプリケーションランチャーとインストーラーの両方を生成できます。

あまり繰り返したくないので、たとえば、プラグインしたこの以前の回答を確認してください(インストーラービルダーとしてですが、ここでは大きな違いはありません)。

要約/結論: install4j は、事前にインストールされた JRE (または他の特定のライブラリ) にまったく依存しないネイティブ .exe ランチャーを作成でき、JRE をバンドル (および検出) するための柔軟なオプションを提供します。

于 2010-02-13T20:32:48.427 に答える
0

http://ulibgcj.sourceforge.net/uswt.html SWTを 使用してGUIを簡単に構築し、EclipseGCJBuilderを確認できるmicro-swtライブラリがあり ます。

于 2011-11-24T11:50:14.717 に答える
0

Install4jは、このような目的に最適なツールです。また、JSmoothまたはlaunch4jをチェックすることもできます。ただし、jresをJSmoothにバンドルしようとしましたが、できませんでした。

于 2012-06-08T15:44:27.173 に答える
0

Engima Projector x86 / x64 は BoxedApp Packer より優れていることがわかりました

アプリケーション myapp.jar を launcher\jre\bin\ にコピーするよりも、packr によってソフト miminizejre を取得する場合

インストール済みの jre の例 C:\Program Files\Files\Java\1.8.0_xxx\bin\javaw.exe から launcher\jre\bin\ にコピーします。

Engima Protector 入力を開く -> launcher\jre\bin\ から javaw.exe

高圧縮が必要な場合はオプションに移動し、その他を検索->コマンドライン「-jar myapp.jar」

そして、保護をクリックして、dll 全体と jar が exe になるのを待ちます

埋め込まれた javaw_protected.exe に重要なファイルの例のアセットが含まれているかどうかを確認する必要があるよりも、多くのライブラリの例 lwjgl または JavaFX をインポートした場合でも心配しないため、「必要なライブラリを生成された JAR にパッケージ化する」を使用して、myapp.jar が Eclipse によって生成されることを確認してください。 .

しかし、BoxedApp Packer も同じです。BoxedApp Packer は Engima Protector より少し大きいです。プロテクターは、javaw.exe をアセット/リソースに埋め込むのに最適です。彼らはjarファイルをクラックできません... libディレクトリなしで4 mb未満のexeへの独自のjarに満足していただければ幸いです-jvm.cfgエラーメッセージに問題がある場合は、埋め込まれたexeをルートにコピーしないことを意味しますjreまたはjdkのディレクトリ

埋め込まれた exe が jre または jdk ルート ディレクトリの外にあることを確認してください。

i586を使用する必要があるよりもProtector x86を使用している場合、jre x64にはProtector x64を使用しても問題ないことを願っています

jre x86/i386 で Protector x64 を使用している場合 - 問題ありません。それは正常に動作します。

よろしくお願いします

// 編集:

更新された新しいバージョンの EXCELSIOR JET + VIRTUAL BOX または PROTECTOR は、ほぼ最高の「組み込みアプリケーション」です。

YouTube をチェック: https://www.youtube.com/watch?v=ctbIxq-1MGE

于 2016-10-14T21:53:31.077 に答える
0

JSmooth はドキュメントに従ってこれを行うことができます。組み込み JRE なしで試しただけですが、非常に満足しています。Ant でスクリプト可能であり、Linux 上でビルドします。

http://jsmooth.sourceforge.net/features.php

于 2010-02-13T20:35:44.023 に答える