新しいプログラミング言語を学ばなくても、Java を使用して .exe (実行可能な Windows ファイル) ソフトウェアを直接使用できますか? また、.jar (Java ARchive) ソフトウェアを .exe (実行可能な Windows ファイル) に変換する方法はありますか?
この変換はソフトウェアのパフォーマンスに影響しますか?
Java の重要なポイントの 1 つは、適切な Java 仮想マシン (JVM) がインストールされている任意のプラットフォーム (Windows、Linux など) で実行できることです。.exe ファイルは、1 つのプラットフォームでのみ動作するようにコンパイルされています。
あなたが望むのは、.jar を .exe に変換して、簡単に起動できるようにすることです。皆さんが本当に求めているのは、両親を含む誰もが理解できる Java アプリケーションを起動する簡単な方法です。
これを行う最も簡単な方法は、Java アプリを起動する Windows バッチ ファイルを作成することです。スクリプトの 1 行、1 つの新しいファイル、ユーザーへの 1 つの新しい指示 - 「runme.bat をダブルクリック」
.jar を .exe に変換する方法はいくつかありますが、それが本当に必要かどうか、また必要な場合はその理由を検討する必要があります。
注: マニフェストでメイン クラスが指定されている限り、.jar をダブルクリックするだけで、Windows で .jar を起動できます。Apache Ant などのツールを調べて、.jar とそのマニフェストの作成を簡素化することをお勧めします。ちょっとした考え。
編集:
Windows のバッチ ファイルは、コマンドを含む単純なテキスト ファイルです。コマンド プロンプトでコマンドを実行して、コマンドをテストできます ([スタート] -> [ファイル名を指定して実行] -> [cmd])。バッチ ファイルを実行すると、その中のコマンドが一度に 1 つずつコマンド プロンプトに送られます。
コマンド プロンプトから Jar を実行する方法: "java -jar myfile.jar"
"java -jar myfile.jar" (引用符なし) を含むバッチ ファイル (.bat - メモ帳または任意のテキスト エディターを使用) を作成すると、それをダブルクリックすると、myfile のマニフェストで指定されたメイン クラスが起動します。瓶。ただし、myfile.jar はバッチ ファイルと同じフォルダーにある必要があります。
コマンド「java -jar lib\myfile.jar」を使用すると (再度、引用符なしで)、バッチ ファイルは myfile.jar を実行します。これは、バッチ ファイルと同じフォルダーにある lib というフォルダーにある必要があります。 . アプリケーションに大量の Jar があり、それらをユーザーの顔に押し付けたくない場合は、このアプローチを使用してください :)
バッチ ファイルを移動すると、jar ファイルへの絶対パス (例: "java -jar C:\dev\myfile.jar") を使用しない限り、バッチ ファイルが破損することに注意してください。もちろん、絶対パスを使用する場合、Jar を移動するとバッチ ファイルが破損します :)
また、メイン クラスがマニフェストで指定されている限り、Windows でダブルクリックするだけで Jar ファイルを実行できるはずです。試してみる。もちろん、ダブルクリックできることをユーザーに納得させることは、まったく別の問題です...
最後に、バッチ ファイルを使用すると、Java アプリを閉じるまでバックグラウンドでコマンド プロンプト ウィンドウが表示されます。つまり、バッチ ファイル コマンドを「start」で開始しない限りです。例: 「java -jar myfile.jar を開始」。ただし、アプリが System.out または System.err にログを記録するように構成されている場合でも、アプリがこれらのストリームのいずれかに書き込むときにコマンド プロンプトが表示されます。
Linux の世界では、バッチ ファイルに相当するものはシェル スクリプトです。
Runtime.exec() または ProcessBuilder を使用して、Java から .exe を起動できます。
http://launch4j.sourceforge.net/で .exe ランチャーを作成できます。
私はJavaを扱っていないため、これが適切な答えかどうかはわかりませんが、Javaランタイムを指すショートカットファイルを使用して、jarを引数として渡すことはできませんか?
これが唯一の方法ではなく、おそらく最良の方法ではないことは理解していますが、探しているのがJavaアプリを起動する便利な方法だけである場合は、バッチを作成したりexeファイルに変換したりするよりも少しうまくいきます。
最も簡単な方法は、アプリケーションを起動する Windows バッチ (.bat) ファイルを作成することです。
jsmooth (無料) とexe4jを確認してください。swingアプリをネイティブにする方法をお読みください。
私はかなり長い間exeファイルを作成するためにJavaのラッパーを使用していました:
JStart32 *.jar ファイルの単なるラッパーです。
しかし、自問してみてください: exe は Java プラットフォームの独立性の目的を殺してしまうのではないでしょうか?