551

Java ソース ファイル (*.java) またはクラス ファイル (*.class) がある場合、それを .exe ファイルに変換するにはどうすればよいですか?

プログラムのインストーラーも必要です。

4

16 に答える 16

362

javaパッケージャー

Java Packager ツールは、配布用に Java および JavaFX アプリケーションをコンパイル、パッケージ化、および準備します。javapackager コマンドは、コマンドライン バージョンです。

– Oracle のドキュメント

このjavapackagerユーティリティは JDK に同梱されています。-native exeとりわけ、フラグを使用して .exe ファイルを生成できます。

WinRun4J

WinRun4j は、Windows 用の Java ランチャーです。これは javaw.exe の代替であり、次の利点があります。

  • クラスパス、メイン クラス、vm 引数、プログラム引数を指定するために INI ファイルを使用します。
  • タスク マネージャーに表示されるカスタム実行可能ファイル名。
  • より柔軟なメモリ使用のための追加の JVM 引数。
  • カスタム アイコンの組み込みのアイコン置換。
  • [さらに箇条書きが続きます]

– WinRun4J の Web ページ

WinRun4J はオープン ソース ユーティリティです。多くの機能があります。

パッカー

Windows、Linux、Mac OS X での配布用に JAR、アセット、JVM をパッケージ化し、ネイティブの実行可能ファイルを追加して、ネイティブ アプリのように見せます。Packr は GUI アプリケーションに最適です。

– パックの README

packr は、もう 1 つのオープン ソース ツールです。

JSmooth

JSmooth は Java 実行可能ラッパーです。Java アプリケーション用のネイティブ Windows ランチャー (標準の .exe) を作成します。インストールされている Java VM を自動的に検出できるため、Java の展開がよりスムーズで使いやすくなります。

– JSmoothのウェブサイト

JSmooth はオープン ソースで機能はありますが、非常に古いものです。最後のリリースは 2007 年でした。

JexePack

JexePackは、Java アプリケーション (クラス ファイル) をオプションでそのリソース (GIF/JPG/TXT/etc など) と共に、単一の圧縮された32 ビット Windows EXEにパッケージ化できるコマンド ライン ツール (自動スクリプト作成に最適) です。 、Sun の Java ランタイム環境を使用して実行されます。コンソール アプリケーションとウィンドウ アプリケーションの両方がサポートされています。

– JexePack の Web サイト

JexePack はトライアルウェアです。本番環境での使用には支払いが必要であり、このツールで作成された exe ファイルは支払いなしで「リマインダー」を表示します。また、最後のリリースは 2013 年でした。

どこでもインストール

InstallAnywhere を使用すると、開発者はあらゆるプラットフォーム向けのプロフェッショナルなインストール ソフトウェアを簡単に作成できます。InstallAnywhere を使用すると、業界の変化にすばやく適応し、市場投入を早め、魅力的なカスタマー エクスペリエンスを提供できます。また、出荷前にプロジェクトの OSS コンポーネントの脆弱性を把握してください。

– InstallAnywhere の Web サイト

InstallAnywhere は、Java ベースのプログラムのインストーラーを生成する商用/エンタープライズ パッケージです。おそらく.exeファイルを作成できます。

実行可能な JAR ファイル

.exe ファイルの代わりに、JAR マニフェストにエントリ ポイントを追加することで、ダブルクリック時に自動的に実行される JAR ファイルを作成できます。


詳細については

このトピックに関する優れた情報源は、Excelsior の記事「Convert Java to EXE – Why, When, When Not and How」です。

関連記事「JAR から EXE への最適な変換ツール、無料および商用」も参照してください。

于 2008-09-29T01:42:12.813 に答える
120

Launch4j

Launch4j は、軽量の Windows ネイティブ実行可能ファイルで jar として配布された Java アプリケーションをラップするためのクロスプラットフォーム ツールです。実行可能ファイルは、特定の JRE バージョンを検索するか、バンドルされたバージョンを使用するように構成できます。また、初期/最大ヒープ サイズなどのランタイム オプションを設定することもできます。また、ラッパーは、適切な JRE が見つからない場合に備えて、アプリケーション アイコン、ネイティブの pre-JRE スプラッシュ スクリーン、カスタム プロセス名、および Java ダウンロード ページを通じて、より優れたユーザー エクスペリエンスを提供します。

– Launch4j の Web サイト

于 2008-09-29T08:10:37.437 に答える
39

更新: GCJ は終了しました。2016 年に正式に GCC プロジェクトから削除されました。それ以前から、実際には 7 年間放棄されていました。いずれにせよ、実行可能な代替 Java 実装として機能するほど十分に完成したことはありませんでした。

別の Java AOT コンパイラーを見つけてください。

GCJ: GNU Compiler for Javaは、Java ソース コードを Windows 実行可能ファイルを含むネイティブ マシン コードにコンパイルできます。

Java のすべてが GCJ でサポートされているわけではありませんが、特に GUI コンポーネントがサポートされています (サポートされている Java API は何ですか? サポートはどのくらい完全ですか? FAQの質問を参照してください)。私は GCJ をあまり使用したことがありませんが、コンソール アプリケーションで行った限られたテストからは、問題ないように思えます。

GCJ を使用してスタンドアロンの実行可能ファイルを作成することの欠点の 1 つは、生成される EXE のサイズが非常に大きくなる可能性があることです。ある時、GCJ で簡単なコンソール アプリケーションをコンパイルしたところ、約 1 MB の実行可能ファイルができました。(私が気付いていない方法があるかもしれません。別のオプションは、実行可能な圧縮プログラムです。)

オープンソースのインストーラーに関して言えば、Nullsoft Scriptable Install Systemはスクリプト可能なインストーラーです。興味がある場合は、JRE の存在を検出し、必要な JRE がインストールされていない場合に自動的にインストールする方法に関するユーザー提供の例があります。(念のために言っておきますが、私は以前に NSIS を使用したことがありません。)

Java アプリケーションのインストールに NSIS を使用する方法の詳細については、 「 Java アプリケーションを配布する最良の方法は何ですか?」という質問に対する私の回答をご覧ください。

于 2008-09-29T01:40:25.003 に答える
28

次のコードでバッチ ファイルを作成できます。

start javaw -jar JarFile.jar

.bat から .exe へのコンバーターを使用して、.bat を .exe に変換します。

于 2013-08-17T15:42:04.803 に答える
20

Install4Jを使用して、Windows または UNIX 環境用のインストーラーをビルドしています。

標準のダイアログでは実行できない特別なアクションのスクリプトを書きたいという点まで、簡単にカスタマイズできます。しかし、それを使用して Windows サービスをセットアップしているにもかかわらず、標準コンポーネントしか使用していません。

  • インストーラー + ランチャー
  • Windows または UNIX
  • Javaでスクリプト可能
  • アリの仕事
  • 多くのカスタマイズ可能な標準パネルとアクション
  • オプションで JRE をインクルードまたはダウンロード
  • Windows サービスを起動することもできます
  • 複数の言語

Launch4J は同じ会社のものだと思います (ランチャーのみ - インストーラーはありません)。

PS: 悲しいことに、私はこの承認に対して報酬を受け取っていません。私はちょうどそのツールが好きです。

于 2008-09-29T13:01:46.190 に答える
18

最新のJavaWebStartは、「ローカルインストール」だけでなく、優れたオフライン操作を可能にするように拡張されています。調べる価値があります。

EDIT 2018:JavaWebStartは最新のJDKにバンドルされなくなりました。オラクルは、代わりに「同封のJREを使用してアプリをローカルにデプロイする」モデルを推進しています。

于 2009-05-27T10:09:54.533 に答える
12

IMHO JSmoothはかなり良い仕事をしているようです。

于 2008-09-29T01:37:33.560 に答える
12

アプリケーション全体をネイティブ コード (つまり、EXE と DLL) に変換する必要がある場合は、ExcelsiorJETがあります。私はそれがうまく機能することを発見し、JRE をバンドルする代わりの方法を提供しました。

編集: これは 2010 年に投稿されたものです。この製品はもう入手できません。

于 2010-04-29T01:38:47.477 に答える
9

launch4j は Java ソース コード (.java) を .exe ファイルに変換するのに最適なツールだと思います。jre をバンドルして配布することもでき、exe をアイコン化することもできます。アプリケーションのサイズは大きくなりますが、ユーザーが jre をインストールしていなくても、アプリケーションが完全に動作することが保証されます。また、ユーザーがアプリを個別にインストールしなくても、アプリに必要な特定の jre を確実に提供できるようになります。しかし残念なことに、Java はその重要性を失いました。そのマルチ プラットフォーム サポートは完全に無視され、最終的なアプリは Windows でのみサポートされます。しかし、Windows ユーザーのみを対象としている場合、それは大したことではありません。

于 2012-08-27T18:40:48.410 に答える
8

ジャネルを使用できます。これは最後に、アプリケーション ランチャーまたはサービス ランチャー (4.x から利用可能) として機能します。

于 2013-06-10T09:13:54.803 に答える
7

または、JavaからCへのトランスレータ(JCGOなど)を使用して、生成されたCファイルをターゲットプラットフォームのネイティブバイナリ(.exe)ファイルにコンパイルすることもできます。

于 2010-05-28T14:26:14.263 に答える
6

Javaプログラムを.exeアプリケーションに変換することに反対することは許されますが、それには理由があります。主なものは、Javaプログラムを多くのIDEからjarファイルにコンパイルできることです。プログラムが.jar形式の場合、非常に限られた環境でのみ実行される.exeとは対照的に、複数のプラットフォームで実行できます。私は、Javaプログラムは、非常に必要な場合を除いて、Exeに変換されるべきではないという考えに賛成です。jarファイルである間はいつでもJavaプログラムを実行する.batファイルを書くことができます。

exeに変換する必要がある場合は、Jar2Exeコンバーターがサイレントに変換し、メインアプリケーションと一緒にコンパイルされたライブラリをアタッチすることもできます。

于 2012-07-19T13:16:24.370 に答える
4

jar2exeを使用して、jar を exe に変換できます。ただし、ソフトウェアを購入する必要があります。オープン ソース ソフトウェアが必要な場合は、JSmoothをお勧めします。

于 2012-10-16T17:22:14.640 に答える