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はオープンソースのユーティリティです。それは 多く の特徴を持っています。
JAR、アセット、およびJVMをWindows、Linux、およびMac OS Xで配布するためにパッケージ化し、ネイティブの実行可能ファイルを追加してネイティブアプリのように見せる。 PackrはGUIアプリケーションに最適です。
- packr README
packrはもう一つのオープンソースツールです。
JSmoothはJava実行可能ラッパーです。 Javaアプリケーション用のネイティブWindowsランチャー(標準の.exe)を作成します。インストールされたJava VMを単独で見つけることができるため、Javaの展開はよりスムーズでユーザーフレンドリーになります。
- JSmoothのウェブサイト
JSmoothはオープンソースで機能もありますが、とても古いです。最後のリリースは2007年でした。
JexePack は、Javaアプリケーション(クラスファイル)を、必要に応じてそのリソース(GIF/JPG/TXT/etcなど)と一緒に1つにパッケージ化できるコマンドラインツール(自動スクリプト作成に最適)です。 圧縮 32ビットWindows EXE。SunのJava Runtime Environmentを使用して実行されます。コンソールアプリケーションとウィンドウアプリケーションの両方がサポートされています。
- JexePackのウェブサイト
JexePackは体験版です。生産的使用には支払いが必要であり、このツールで作成されたexeファイルは支払いなしで「リマインダー」を表示します。また、最後のリリースは2013年でした。
InstallAnywhereを使用すると、開発者はあらゆるプラットフォーム用のプロフェッショナルなインストールソフトウェアを簡単に作成できます。 InstallAnywhereを使用すると、業界の変化にすばやく適応し、早く市場に参入し、魅力的なカスタマーエクスペリエンスを提供できます。出荷する前に、プロジェクトのOSSコンポーネントの脆弱性を知っておいてください。
- InstallAnywhereのウェブサイト
InstallAnywhereは、Javaベースのプログラム用のインストーラを生成する商用/エンタープライズパッケージです。それはおそらく.exeファイルを作成することが可能です。
.exeファイルの代わりに、 JARマニフェストへのエントリポイントの追加 を使用すると、ダブルクリック時に自動的に実行されるJARファイルを作成できます。
このトピックに関する優れた情報源は、Excelsiorの記事「 JavaからEXEへの変換 - なぜ、いつ、いつから、どのように 」です。
関連記事 " EXEからEXEへの変換ツールのベストJAR、無料版と商用版 "もご覧ください。
Launch4jは、軽量のWindowsネイティブ実行可能ファイルにjarとして配布されているJavaアプリケーションをラップするためのクロスプラットフォームツールです。実行可能ファイルは、特定のJREバージョンを検索するように設定することも、バンドルされたものを使用するように設定することもでき、初期/最大ヒープサイズなどの実行時オプションを設定することもできます。ラッパーは、適切なJREが見つからない場合に、アプリケーションアイコン、JREより前のネイティブスプラッシュスクリーン、カスタムプロセス名、およびJavaダウンロードページを通じて、より優れたユーザーエクスペリエンスを提供します。
- Launch4jのウェブサイト
UPDATE:GCJは停止しています。それは 2016年にGCCプロジェクトから公式に削除されました 。それ以前でさえ、それは実質的に7年間放棄されました、そして、いずれにせよ は十分に完全ではありませんでした 実行可能な代替Java実装として機能します。
別のJava AOTコンパイラを見つけてください。
GCJ:GNU Java用コンパイラ は、JavaソースコードをWindows実行可能ファイルを含むネイティブマシンコードにコンパイルできます。
JavaのすべてがGCJでサポートされているわけではありませんが、特にGUIコンポーネント( どのJava APIがサポートされていますか?サポートはどの程度完了しますか?FAQ )からの質問。私はGCJをあまり使用していませんが、コンソールアプリケーションで行った限られたテストから、それはうまくいくようです。
GCJを使用してスタンドアロンの実行可能ファイルを作成する1つの欠点は、結果のEXEのサイズが非常に大きくなる可能性があることです。 GCJで簡単なコンソールアプリケーションをコンパイルすると、約1 MBの実行可能ファイルが作成されました。 (これを回避する方法があるかもしれませんが、別のオプションは実行可能な圧縮プログラムです。)
オープンソースのインストーラーに関しては、 Nullsoft Scriptable Install System はスクリプト可能なインストーラーです。興味がある場合は、 ユーザー提供のサンプル があります。これは、JREの存在を検出し、必要なJREがインストールされていない場合に自動的にインストールする方法です。 (お知らせするために、NSISを使用したことがありません。)
NSISを使用してJavaアプリケーションをインストールする方法の詳細については、 my response を参照して、「 What's best way to Javaアプリケーションを配布しますか? "
次のコードでバッチファイルを作ることができます:
start javaw -jar JarFile.jar
.batから.exeへのコンバータを使用して、.batを.exeに変換します。
私たちは Install4J を使ってwindowsやunix環境用のインストーラを構築しています。
標準的な対話ではできない特別な行動のためのスクリプトを書きたいところまでは簡単にカスタマイズできます。しかし、それを使ってWindowsサービスを設定していても、標準コンポーネントのみを使用しています。
私はLaunch4Jは同じ会社の出身だと思います(単なるランチャーです - インストーラーはありません)。
シモンズ:残念ながら、私はこの裏書の支払いを受けていません。私はそのツールが好きです。
最新の Java Web Start は、 "ローカルインストール"を可能にするだけでなく、オフラインでの良好な操作を可能にするように拡張されました。調べる価値があります。
編集2018年:Java Web Startはもはや最新のJDKにバンドルされていません。代わりに、Oracleは「同封のJREを使用してアプリケーションをローカルにデプロイする」モデルを推進しています。
私見 JSmooth はかなり良い仕事をしているようです。
アプリケーション全体をネイティブコード、つまりEXEとDLLに変換する必要がある場合は、 ExcelsiorJET があります。私はそれがうまくいっていることがわかり、JREをバンドルする代わりの方法を提供しました。
Launch4jはJavaのソースコード(.Java)を.exeファイルに変換するのに最適なツールです。配布用にjreをバンドルすることも、exeをアイコン化することもできます。アプリケーションのサイズは大きくなりますが、ユーザーにjreがインストールされていなくてもアプリケーションが完全に機能することを確認します。また、ユーザーが個別にインストールしなくても、アプリに必要な特定のjreを提供できることも確認できます。しかし残念ながら、Javaはその重要性を失います。そのマルチプラットフォームのサポートは完全に無視され、最終的なアプリはWindowsでのみサポートされています。しかし、Windowsユーザーだけを対象にしているのであれば、それは大した問題ではありません。
Janel を使用できます。これはアプリケーションランチャーまたはサービスランチャー(4.xから利用可能)として最後に機能します。
あるいは、JavaからCへの変換プログラム( _ jcgo _ など)を使用して、生成されたCファイルをターゲットプラットフォーム用のネイティブバイナリ(.exe)ファイルにコンパイルすることもできます。
私はJavaプログラムを.exeアプリケーションに変換することに反対していることを許すことができ、私には私の理由があります。主なものは、多くのIDEからJavaプログラムをjarファイルにコンパイルできるということです。プログラムが.jar形式の場合、非常に限られた環境でのみ実行される.exeではなく、複数のプラットフォームで実行できます。私は、Javaプログラムが非常に必要でない限り、ExeをExeに変換しないことを考えています。 jarファイルでありながら、Javaプログラムを実行する.batファイルをいつでも書くことができます。
exeに変換することが本当に必要な場合は、Jar2Exeコンバータがそれを黙って行い、メインアプリケーションと一緒にコンパイルされたライブラリを添付することもできます。