3

新しいプログラミング言語を学ばなくても、Java を使用して .exe (実行可能な Windows ファイル) ソフトウェアを直接使用できますか? また、.jar (Java ARchive) ソフトウェアを .exe (実行可能な Windows ファイル) に変換する方法はありますか?

この変換はソフトウェアのパフォーマンスに影響しますか?

4

7 に答える 7

6

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 の世界では、バッチ ファイルに相当するものはシェル スクリプトです。

于 2009-07-28T08:44:42.337 に答える
4

はい、可能です: http://www.excelsior-usa.com/articles/java-to-exe.html

于 2009-07-28T08:33:51.470 に答える
4

Runtime.exec() または ProcessBuilder を使用して、Java から .exe を起動できます。

http://launch4j.sourceforge.net/で .exe ランチャーを作成できます。

于 2009-07-28T08:31:19.227 に答える
2

私はJavaを扱っていないため、これが適切な答えかどうかはわかりませんが、Javaランタイムを指すショートカットファイルを使用して、jarを引数として渡すことはできませんか?

これが唯一の方法ではなく、おそらく最良の方法ではないことは理解していますが、探しているのがJavaアプリを起動する便利な方法だけである場合は、バッチを作成したりexeファイルに変換したりするよりも少しうまくいきます。

于 2009-07-28T09:07:26.970 に答える
2

最も簡単な方法は、アプリケーションを起動する Windows バッチ (.bat) ファイルを作成することです。

于 2009-07-28T09:12:45.900 に答える
1

jsmooth (無料) とexe4jを確認してください。swingアプリをネイティブにする方法をお読みください。

于 2009-07-28T08:36:34.053 に答える
1

私はかなり長い間exeファイルを作成するためにJavaのラッパーを使用していました:

JStart32 *.jar ファイルの単なるラッパーです。

しかし、自問してみてください: exe は Java プラットフォームの独立性の目的を殺してしまうのではないでしょうか?

于 2009-07-28T08:32:55.683 に答える