Javaプログラムを.exeファイルに変換するにはどうすればよいですか?[閉まっている]


500

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

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


1
アプレットの簡単なハック:mainを使用してCコードを記述し、system( "appletviewer java_src_file");のような関数 "system"を呼び出します。
Madhusoodan P 2016

1
.exeはJREのないWindowsシステムで動作しますか?
Arpit Agarwal 2017年

完全にするため(インストーラーではなくexeラッパーが必要だったので、自分で試さないでください):javapackagerを使用してインストーラーパッケージを作成することもできます(docs.oracle.com/javase/8/docs/technotes/guides/deploy/…を参照) 。EXEまたはMSIインストーラーを作成するには、さらにInno SetupまたはWiXをダウンロードしてインストールする必要があります。
anre

NSISも役立つかもしれません。nsis.sourceforge.net/Java_Launcher
baris.aydinoz

回答:


324

javapackager

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

– Oracleのドキュメント

javapackagerJDKとユーティリティが付属しています。それは-native exe他の多くのものの間で、フラグ付きの.exeファイルを生成することができます。

WinRun4J

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

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

– WinRun4JのWebページ

WinRun4Jはオープンソースユーティリティです。それは多くの機能を備えてます。

パッカー

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

– JexePackのWebサイト

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

InstallAnywhere

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

– InstallAnywhereのWebサイト

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

実行可能JARファイル

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


詳細については

このトピックに関する優れた情報源は、Excelsiorの記事「JavaをEXEに変換-なぜ、いつ、いつ、そしてどのように」です。

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


それは日食とJsmoothを使用する方が良いです。これらのステップに従いregilanj.wordpress.com/2017/11/19/...
マリアIrudaya Regilan J

これらのいずれかが私の状況で機能しますか?stackoverflow.com/questions/56674075/...
gunslingor

これを試してください:javaexe.free.fr/html/en/JavaExe.html
CamelTM

112

Launch4j

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

– Launch4jのWebサイト


35

更新: GCJは死んでいます。それは2016年にGCCプロジェクトから正式に削除されました。それ以前でも、実質的に7年間放棄されており、いずれにしても、実行可能な代替Java実装として機能するために十分に完全はありませんでした

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

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

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

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

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

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


2
私が見ることができるように、プロジェクトは実際に死んでいます。メインページにニュースはありません
Vladislav Rastrusny 2014年

Oracle以外のソースが検証のためにTCKにアクセスできなかったため、GNU Java開発はOpenJDKにかなり移行しました。
–ThorbjørnRavn Andersen 2015

25

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

start javaw -jar JarFile.jar

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


2
優れたラッパーは、JREをもたらすか、必要に応じてJREをインストールし、エラー状況を処理します。
–ThorbjørnRavn Andersen 2017

16

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

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

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

Launch4Jは同じ会社のものだと思います(ランチャーだけ-インストーラーなし)。

PS:残念ながら私はこの裏書に対して支払いを受けていません。私はそのツールが好きです。


15

最新のJava Web Startは、適切なオフライン操作と「ローカルインストール」を可能にするように拡張されています。調べる価値があります。

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


どうやらJWSのセキュリティは非常に厳しくなっているため、実行するには以前よりも多くの労力が必要です。ただし、インストーラーにとってはまだ便利な場合があります。
–ThorbjørnRavn Andersen 2017

9

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


しかし、本当に高価です。
モルデチャイ2015年


6

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


5

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


4

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


2
私はこの方法の有効性を非常に信じています。私はそれを信じて見る必要があります(ほとんどのJavaコードがJREへのAPI呼び出しであり、そのすべてがCに存在しないということを考えてください。
Camilo Martin、

3

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

exeに変換するのに本当に必要な場合は、Jar2Exeコンバーターが黙ってそれを行い、メインアプリケーションと一緒にコンパイルされたライブラリーを添付することもできます。


問題は、Javaのパワーは移植性ですが、多くの人は基本的なWindowsのexeファイルが必要なだけです。個人的には、Javaのコンセプトが好きです...しかし、JREをダウンロードすることなく、ユーザーが実行できるものを配布したいと考えています。
Balmipour

2

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.