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 args、プログラムargsを指定するためにINIファイルを使用します。
- タスクマネージャに表示されるカスタム実行可能ファイル名。
- より柔軟なメモリ使用のための追加のJVM引数。
- カスタムアイコンの組み込みアイコン置換。
- [さらに箇条書きが続きます]
– WinRun4JのWebページ
WinRun4Jはオープンソースユーティリティです。それは多くの機能を備えています。
Windows、Linux、Mac OS Xで配布するためにJAR、アセット、JVMをパッケージ化し、ネイティブ実行可能ファイルを追加して、ネイティブアプリのように見せます。PackrはGUIアプリケーションに最適です。
– packr README
packrは別のオープンソースツールです。
JSmoothはJava実行可能ラッパーです。Javaアプリケーション用のネイティブWindowsランチャー(標準.exe)を作成します。インストールされているJava VMを単独で見つけることができるため、Javaのデプロイメントがはるかにスムーズでユーザーフレンドリーになります。
– JSmoothのWebサイト
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の記事「JavaをEXEに変換-なぜ、いつ、いつ、そしてどのように」です。
関連記事「ベストJARからEXEへの変換ツール、無料および商用」も参照してください。
Launch4jは、jarとして配布されたJavaアプリケーションを軽量のWindowsネイティブ実行可能ファイルにラップするためのクロスプラットフォームツールです。実行可能ファイルは、特定のJREバージョンを検索するか、バンドルされているバージョンを使用するように構成できます。また、初期/最大ヒープサイズなどのランタイムオプションを設定できます。このラッパーは、適切なJREが見つからない場合に備えて、アプリケーションアイコン、ネイティブのJRE以前のスプラッシュ画面、カスタムプロセス名、およびJavaダウンロードページを通じて、より良いユーザーエクスペリエンスを提供します。
– Launch4jのWebサイト
更新: 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アプリケーションを配布する最良の方法は何ですか?」という質問に対する私の回答をご覧ください。
次のコードでバッチファイルを作成できます。
start javaw -jar JarFile.jar
そして、.batから.exeへのコンバーターを使用して、.batを.exeに変換します。
Install4Jを使用して、WindowsまたはUNIX環境用のインストーラーを構築しています。
標準のダイアログでは実行できない特別なアクションのスクリプトを記述したいところまで、簡単にカスタマイズできます。しかし、それを使用してWindowsサービスをセットアップしているにもかかわらず、標準コンポーネントのみを使用しています。
Launch4Jは同じ会社のものだと思います(ランチャーだけ-インストーラーなし)。
PS:残念ながら私はこの裏書に対して支払いを受けていません。私はそのツールが好きです。
最新のJava Web Startは、適切なオフライン操作と「ローカルインストール」を可能にするように拡張されています。調べる価値があります。
EDIT 2018:Java Web Startは最新のJDKにバンドルされなくなりました。オラクルは、代わりに「同封のJREを使用してアプリをローカルにデプロイする」モデルを推進しています。
アプリケーション全体をネイティブコード、つまりEXEとDLLに変換する必要がある場合は、ExcelsiorJETがあります。私はそれがうまく機能することを発見し、JREをバンドルする代替手段を提供しました。
launch4jは、Javaソースコード(.java)を.exeファイルに変換するための最良のツールだと思います。jreをバンドルして配布し、exeをアイコン化することもできます。アプリケーションのサイズは大きくなりますが、ユーザーがjreをインストールしていなくても、アプリケーションは完全に機能します。また、ユーザーが個別にインストールしなくても、アプリに必要な特定のjreを提供できるようになります。しかし残念ながら、Javaはその重要性を失っています。マルチプラットフォームのサポートは完全に無視され、最終的なアプリはWindowsでのみサポートされます。ただし、Windowsユーザーのみに対応する場合は、それほど大きな問題ではありません。
または、java-to-cトランスレータ(JCGOなど)を使用して、生成されたCファイルをターゲットプラットフォームのネイティブバイナリ(.exe)ファイルにコンパイルすることもできます。
Javaプログラムを.exeアプリケーションに変換することに反対することは許されます。主なものは、Javaプログラムを多くのIDEからjarファイルにコンパイルできることです。プログラムが.jar形式の場合、非常に限られた環境でのみ実行される.exeではなく、複数のプラットフォームで実行できます。非常に必要な場合を除き、JavaプログラムをExeに変換しないでください。jarファイルでありながら、Javaプログラムを実行する.batファイルをいつでも書き込むことができます。
exeに変換するのに本当に必要な場合は、Jar2Exeコンバーターが黙ってそれを行い、メインアプリケーションと一緒にコンパイルされたライブラリーを添付することもできます。