Javaプログラムを.exeファイルに変換するにはどうすればよいですか? [閉まっている]
質問
Javaソースファイル(* .java)またはクラスファイル(* .class)がある場合、どのようにそれを.exeファイルに変換できますか?
プログラムのインストーラーも必要です。
解決
javapackager
Java Packagerツールは、配布用にJavaおよびJavaFXアプリケーションをコンパイル、パッケージ化、および準備します。 javapackagerコマンドは、コマンドラインバージョンです。
–オラクルのドキュメント
javapackager
ユーティリティはJDKに同梱されています。 -native exe
フラグを含む.exeファイルを生成できます。
WinRun4J
WinRun4jは、Windows用のJavaランチャーです。 javaw.exeの代替であり、次の利点があります。
- INIファイルを使用して、クラスパス、メインクラス、vm引数、プログラム引数を指定します。
- タスクマネージャーに表示されるカスタム実行可能ファイル名。
- より柔軟なメモリ使用のための追加のJVM引数。
- カスタムアイコンの組み込みアイコンリプレースメント。
- [箇条書きの続き]
– WinRun4JのWebページ
WinRun4Jはオープンソースユーティリティです。 多くの機能があります。
packr
Windows、Linux、およびMac OS Xで配布するためにJAR、アセット、JVMをパッケージ化し、ネイティブ実行可能ファイルを追加して、ネイティブアプリのように見せます。 PackrはGUIアプリケーションに最適です。
– packrのREADME
packrは別のオープンソースツールです。
JSmooth
JSmoothはJava実行可能ラッパーです。 Javaアプリケーション用のネイティブWindowsランチャー(標準.exe)を作成します。インストールされたJava VM自体を見つけることができるため、Javaの展開がよりスムーズで使いやすくなります。
– JSmoothのWebサイト
JSmoothはオープンソースであり、機能を備えていますが、非常に古いものです。最後のリリースは2007年でした。
JexePack
JexePack は、オプションでリソース(GIF / JPG / TXT / etcなど)とともにJavaアプリケーション(クラスファイル)をパッケージ化できるコマンドラインツール(自動スクリプト作成に最適)です。 、単一の圧縮 32ビットWindows EXEに変換します。これは、SunのJavaランタイム環境を使用して実行されます。コンソールアプリケーションとウィンドウアプリケーションの両方がサポートされています。
– JexePackのWebサイト
JexePackはトライアルウェアです。実稼働での使用には支払いが必要です。このツールで作成されたexeファイルには「リマインダー」と表示されます支払いなし。また、最後のリリースは2013年でした。
InstallAnywhere
InstallAnywhereを使用すると、開発者はあらゆるプラットフォーム向けのプロフェッショナルなインストールソフトウェアを簡単に作成できます。 InstallAnywhereを使用すると、業界の変化に迅速に適応し、市場投入までの時間を短縮し、魅力的なカスタマーエクスペリエンスを提供できます。出荷する前に、プロジェクトのOSSコンポーネントの脆弱性を知ってください。
– InstallAnywhereのWebサイト
InstallAnywhereは、Javaベースのプログラムのインストーラーを生成する商用/エンタープライズパッケージです。おそらく.exeファイルを作成できます。
実行可能JARファイル
.exeファイルの代替として、エントリポイントをJARマニフェストに追加。
詳細情報
他のヒント
Launch4j
Launch4jは、軽量のWindowsネイティブ実行可能ファイルにjarとして配布されるJavaアプリケーションをラップするためのクロスプラットフォームツールです。実行可能ファイルは、特定のJREバージョンを検索するように、またはバンドルされたバージョンを使用するように構成できます。また、初期/最大ヒープサイズなどのランタイムオプションを設定できます。また、ラッパーは、適切なJREが見つからない場合に、アプリケーションアイコン、ネイティブのJRE以前のスプラッシュスクリーン、カスタムプロセス名、およびJavaダウンロードページを介してユーザーエクスペリエンスを向上させます。
– Launch4jのWebサイト
更新: GCJは停止しています。 2016年にGCCプロジェクトから公式に削除されました。それ以前でも、実質的に放棄されていましたいずれにしても、実行可能な代替Java実装として機能するには、十分に完全ではなかった。
別のJava AOTコンパイラを見つけてください。
GCJ:Java用GNUコンパイラは、JavaソースコードをWindows実行可能ファイルを含むネイティブマシンコードにコンパイルできます。
GCJでJavaのすべて、特にGUIコンポーネントがサポートされているわけではありません(参照 サポートされているJava APIは何ですか?サポートはどの程度完了していますか? FAQ )。私はGCJをあまり使用していませんが、コンソールアプリケーションで行った限られたテストから、それはうまくいくようです。
GCJを使用してスタンドアロンの実行可能ファイルを作成する場合の欠点の1つは、生成されるEXEのサイズが非常に大きくなる可能性があることです。 GCJで簡単なコンソールアプリケーションをコンパイルすると、約1 MBの実行可能ファイルが作成されました。 (これを回避する方法があるかもしれません。別のオプションは実行可能な圧縮プログラムです。)
オープンソースのインストーラーに関しては、 Nullsoft Scriptable Install System はスクリプト可能なインストーラーです。興味がある場合は、JREの存在を検出する方法についてユーザーが投稿した例があります。必要なJREがインストールされていない場合は、自動的にインストールします。 (お知らせするために、NSISを使用したことがありません。)
NSISを使用したJavaアプリケーションのインストールの詳細については、質問に対する私の回答" Javaアプリケーションを配布する最良の方法は何ですか?"
次のコードでバッチファイルを作成できます。
start javaw -jar JarFile.jar
.batから.exeへのコンバータを使用して、.batを.exeに変換します。
Install4J を使用して、WindowsまたはUNIX用のインストーラーを構築しています環境。
標準のダイアログでは行えない特別なアクション用のスクリプトを記述したいところまで、簡単にカスタマイズできます。ただし、Windowsサービスを設定しているにもかかわらず、標準コンポーネントのみを使用しています。
- インストーラー+ランチャー
- windowsまたはunix
- Javaでスクリプト可能
- antタスク
- カスタマイズ可能な標準パネルとアクションの多く
- オプションでJREを含めるかダウンロードします
- Windowsサービスも起動できます
- 複数の言語
Launch4Jは同じ会社のものであると思います(ランチャーのみ-インストーラーなし)。
PS:残念ながら、私はこの裏書の支払いを受けていません。私はそのツールが好きです。
最新の Java Web Start が強化され、良好なオフライン操作と"ローカルインストール」。調べる価値があります。
EDIT 2018:Java Web Startは、最新のJDKにバンドルされなくなりました。 Oracleは、「同梱のJREを使用してアプリをローカルにデプロイする」ことを推進しています。代わりにモデル。
アプリケーション全体をネイティブコード、つまりEXEとDLLに変換する必要がある場合、があります。 ExcelsiorJET 。私はそれがうまくいくことがわかり、JREをバンドルする代替手段を提供しました。
IMHO JSmooth はかなり良い仕事をしているようです。
launch4jは、Javaソースコード(.java)を.exeファイルに変換するための最適なツールだと思います 配布用にjreをバンドルすることもでき、exeをアイコン化することもできます。 アプリケーションのサイズは大きくなりますが、ユーザーがjreをインストールしていなくても、アプリケーションが完全に動作することを確認します。また、ユーザーが個別にインストールしなくても、アプリに必要な特定のjreを提供できるようにします。 しかし、残念なことに、javaはその重要性を失います。そのマルチプラットフォームサポートは完全に無視され、最終的なアプリはWindowsでのみサポートされます。ただし、Windowsユーザーのみを対象にしている場合、それは大した問題ではありません。
Janel を使用できます。これは最後に、アプリケーションランチャーまたはサービスランチャーとして機能します(4.xから利用可能)。
別の方法として、java-to-cトランスレータを使用できます(たとえば、 JCGO )。生成されたCファイルをターゲットプラットフォームのネイティブバイナリ(.exe)ファイルにコンパイルします。
Javaプログラムを.exeアプリケーションに変換することは許されませんが、理由があります。主なものは、Javaプログラムを多くのIDEからjarファイルにコンパイルできることです。プログラムが.jar形式の場合、非常に限られた環境でのみ実行される.exeとは対照的に、複数のプラットフォームで実行できます。 Javaプログラムは、非常に必要な場合を除き、Exeに変換しないという考えに賛成です。 Javaプログラムがjarファイルである間にJavaプログラムを実行する.batファイルをいつでも書き込むことができます。
exeに変換することが本当に必要な場合、Jar2Exeコンバーターはそれを静かに行います。また、メインアプリケーションと一緒にコンパイルされるライブラリをアタッチすることもできます。