Java ソース ファイル (*.java) またはクラス ファイル (*.class) がある場合、それを .exe ファイルに変換するにはどうすればよいですか?
プログラムのインストーラーも必要です。
Java ソース ファイル (*.java) またはクラス ファイル (*.class) がある場合、それを .exe ファイルに変換するにはどうすればよいですか?
プログラムのインストーラーも必要です。
Java Packager ツールは、配布用に Java および JavaFX アプリケーションをコンパイル、パッケージ化、および準備します。javapackager コマンドは、コマンドライン バージョンです。
– Oracle のドキュメント
このjavapackager
ユーティリティは JDK に同梱されています。-native exe
とりわけ、フラグを使用して .exe ファイルを生成できます。
WinRun4j は、Windows 用の Java ランチャーです。これは javaw.exe の代替であり、次の利点があります。
- クラスパス、メイン クラス、vm 引数、プログラム引数を指定するために INI ファイルを使用します。
- タスク マネージャーに表示されるカスタム実行可能ファイル名。
- より柔軟なメモリ使用のための追加の JVM 引数。
- カスタム アイコンの組み込みのアイコン置換。
- [さらに箇条書きが続きます]
– WinRun4J の Web ページ
WinRun4J はオープン ソース ユーティリティです。多くの機能があります。
Windows、Linux、Mac OS X での配布用に JAR、アセット、JVM をパッケージ化し、ネイティブの実行可能ファイルを追加して、ネイティブ アプリのように見せます。Packr は GUI アプリケーションに最適です。
– パックの README
packr は、もう 1 つのオープン ソース ツールです。
JSmooth は Java 実行可能ラッパーです。Java アプリケーション用のネイティブ Windows ランチャー (標準の .exe) を作成します。インストールされている Java VM を自動的に検出できるため、Java の展開がよりスムーズで使いやすくなります。
– JSmoothのウェブサイト
JSmooth はオープン ソースで機能はありますが、非常に古いものです。最後のリリースは 2007 年でした。
JexePackは、Java アプリケーション (クラス ファイル) をオプションでそのリソース (GIF/JPG/TXT/etc など) と共に、単一の圧縮された32 ビット Windows EXEにパッケージ化できるコマンド ライン ツール (自動スクリプト作成に最適) です。 、Sun の Java ランタイム環境を使用して実行されます。コンソール アプリケーションとウィンドウ アプリケーションの両方がサポートされています。
– JexePack の Web サイト
JexePack はトライアルウェアです。本番環境での使用には支払いが必要であり、このツールで作成された exe ファイルは支払いなしで「リマインダー」を表示します。また、最後のリリースは 2013 年でした。
InstallAnywhere を使用すると、開発者はあらゆるプラットフォーム向けのプロフェッショナルなインストール ソフトウェアを簡単に作成できます。InstallAnywhere を使用すると、業界の変化にすばやく適応し、市場投入を早め、魅力的なカスタマー エクスペリエンスを提供できます。また、出荷前にプロジェクトの OSS コンポーネントの脆弱性を把握してください。
– InstallAnywhere の Web サイト
InstallAnywhere は、Java ベースのプログラムのインストーラーを生成する商用/エンタープライズ パッケージです。おそらく.exeファイルを作成できます。
.exe ファイルの代わりに、JAR マニフェストにエントリ ポイントを追加することで、ダブルクリック時に自動的に実行される JAR ファイルを作成できます。
このトピックに関する優れた情報源は、Excelsior の記事「Convert Java to EXE – Why, When, When Not and How」です。
関連記事「JAR から EXE への最適な変換ツール、無料および商用」も参照してください。
Launch4j は、軽量の Windows ネイティブ実行可能ファイルで jar として配布された Java アプリケーションをラップするためのクロスプラットフォーム ツールです。実行可能ファイルは、特定の JRE バージョンを検索するか、バンドルされたバージョンを使用するように構成できます。また、初期/最大ヒープ サイズなどのランタイム オプションを設定することもできます。また、ラッパーは、適切な JRE が見つからない場合に備えて、アプリケーション アイコン、ネイティブの pre-JRE スプラッシュ スクリーン、カスタム プロセス名、および Java ダウンロード ページを通じて、より優れたユーザー エクスペリエンスを提供します。
– Launch4j の Web サイト
更新: 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 アプリケーションを配布する最良の方法は何ですか?」という質問に対する私の回答をご覧ください。
次のコードでバッチ ファイルを作成できます。
start javaw -jar JarFile.jar
.bat から .exe へのコンバーターを使用して、.bat を .exe に変換します。
Install4Jを使用して、Windows または UNIX 環境用のインストーラーをビルドしています。
標準のダイアログでは実行できない特別なアクションのスクリプトを書きたいという点まで、簡単にカスタマイズできます。しかし、それを使用して Windows サービスをセットアップしているにもかかわらず、標準コンポーネントしか使用していません。
Launch4J は同じ会社のものだと思います (ランチャーのみ - インストーラーはありません)。
PS: 悲しいことに、私はこの承認に対して報酬を受け取っていません。私はちょうどそのツールが好きです。
最新のJavaWebStartは、「ローカルインストール」だけでなく、優れたオフライン操作を可能にするように拡張されています。調べる価値があります。
EDIT 2018:JavaWebStartは最新のJDKにバンドルされなくなりました。オラクルは、代わりに「同封のJREを使用してアプリをローカルにデプロイする」モデルを推進しています。
IMHO JSmoothはかなり良い仕事をしているようです。
アプリケーション全体をネイティブ コード (つまり、EXE と DLL) に変換する必要がある場合は、ExcelsiorJETがあります。私はそれがうまく機能することを発見し、JRE をバンドルする代わりの方法を提供しました。
編集: これは 2010 年に投稿されたものです。この製品はもう入手できません。
launch4j は Java ソース コード (.java) を .exe ファイルに変換するのに最適なツールだと思います。jre をバンドルして配布することもでき、exe をアイコン化することもできます。アプリケーションのサイズは大きくなりますが、ユーザーが jre をインストールしていなくても、アプリケーションが完全に動作することが保証されます。また、ユーザーがアプリを個別にインストールしなくても、アプリに必要な特定の jre を確実に提供できるようになります。しかし残念なことに、Java はその重要性を失いました。そのマルチ プラットフォーム サポートは完全に無視され、最終的なアプリは Windows でのみサポートされます。しかし、Windows ユーザーのみを対象としている場合、それは大したことではありません。
ジャネルを使用できます。これは最後に、アプリケーション ランチャーまたはサービス ランチャー (4.x から利用可能) として機能します。
または、JavaからCへのトランスレータ(JCGOなど)を使用して、生成されたCファイルをターゲットプラットフォームのネイティブバイナリ(.exe)ファイルにコンパイルすることもできます。
Javaプログラムを.exeアプリケーションに変換することに反対することは許されますが、それには理由があります。主なものは、Javaプログラムを多くのIDEからjarファイルにコンパイルできることです。プログラムが.jar形式の場合、非常に限られた環境でのみ実行される.exeとは対照的に、複数のプラットフォームで実行できます。私は、Javaプログラムは、非常に必要な場合を除いて、Exeに変換されるべきではないという考えに賛成です。jarファイルである間はいつでもJavaプログラムを実行する.batファイルを書くことができます。
exeに変換する必要がある場合は、Jar2Exeコンバーターがサイレントに変換し、メインアプリケーションと一緒にコンパイルされたライブラリをアタッチすることもできます。