web-dev-qa-db-ja.com

実行可能Javaプログラムを作成するにはどうすればよいですか?

JCreatorでJavaプログラムをプログラミングしましたが、すべて完了しましたが、そこから実行可能ファイルを作成します。つまり、Javaをロードしてプログラムを実行する必要はありません。クラスとコンパイルを実行しますが、代わりにスタンドアロンの実行可能ファイルとしてそれを持っています。

これを行う最も簡単な方法は何ですか?

53
Java

SDKにバンドルされている jarツール を使用して、プログラムの実行可能バージョンを作成できます。

これがその方法です。

コマンドプロンプトからの結果は簡単に投稿できますが、JCreatorを使用する場合も同じことが当てはまります。

最初にプログラムを作成します。

$cat HelloWorldSwing.Java
    package start;

    import javax.swing.*;

    public class HelloWorldSwing {
        public static void main(String[] args) {
            //Create and set up the window.
            JFrame frame = new JFrame("HelloWorldSwing");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            JLabel label = new JLabel("Hello World");
            frame.add(label);

            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
    }
    class Dummy {
        // just to have another thing to pack in the jar
    }

非常にシンプルで、「Hello World」のウィンドウを表示するだけです

次にコンパイルします:

$javac -d . HelloWorldSwing.Java

「start」フォルダー内に2つのファイルが作成されましたDummy.classおよびHelloWorldSwing.class

$ls start/
Dummy.class     HelloWorldSwing.class

次のステップでは、jarファイルを作成します。各jarファイルにはマニフェストファイルがあり、実行可能ファイルに関連する属性があります。

これは私のマニフェストファイルの内容です。

$cat manifest.mf
Main-class: start.HelloWorldSwing

メインクラスが何であるかを説明するだけです(public static void mainメソッドを持つもの)

マニフェストの準備ができると、jar実行可能ファイルが呼び出されます。

これには多くのオプションがあり、ここでは-c -m -f(jarを作成する-c、マニフェストファイルを指定する-m、-f =ファイルに名前を付ける必要があります)、およびjarするフォルダーを使用しています。

$jar -cmf manifest.mf hello.jar start

これにより、システムに.jarファイルが作成されます

enter image description here

後でそのファイルをダブルクリックするだけで、期待どおりに実行されます。

enter image description here

JCreatorで.jarファイルを作成するには、「ツール」メニューを使用してjarを作成する必要がありますが、マニフェストがそこにどのように移動するかわかりません。

ここに私が見つけたビデオがあります: JcreatorでJarファイルを作成

この「.jar」アプローチに慣れたら、このスレッドに投稿されている他のリンクを続行できると思います。

jnlp (Java Network Launcher Protocol)も使用できます。

64
OscarRyz

Eclipseを使用している場合、以下の7つの手順を試して、Windows用の.exeファイルを取得できます。

step1step2step3

これでJARファイルができました。 Java -jar path/jarname.jarを使用して実行します。

enter image description here


これを.exeに変換する場合は、 http://sourceforge.net/projects/launch4j/files/launch4j-3/ を試すことができます。

STEP5STEP6

ステップ7:.xmlファイルに適切な名前を付けて、[保存]をクリックします。 .xmlファイルは標準です。心配する必要はありません。実行可能ファイルが作成されます!

17
Jaskey

どういう意味かよくわかりません。

しかし、私はあなたが2つのうちの1つを意味すると仮定します。

  • 実行可能な.jarファイルを作成したい

Eclipseはこれを本当に簡単に行うことができますファイル->エクスポートしてjarを作成し、適切なメインクラスを選択すると、.jarが生成されます。 Windowsでは、.jarをJavaランタイムに関連付ける必要がある場合があります。別名、Shiftキーを押しながら「開く」を右クリックし、jvmを参照してjavaw.exeに関連付けます

  • 実際の.exeファイルを作成したら、次のような追加のライブラリを使用する必要があります

http://jsmooth.sourceforge.net/ または http://launch4j.sourceforge.net/ は、基本的に_になるNiceアイコンを持つネイティブ.exeスタブを作成しますbootstrapアプリ。顧客がJVMをインストールしていないかどうかを把握し、JVMを取得するよう求めます。

12
danswain

コマンドラインで、実行可能にするJavaファイルのルートディレクトリに移動します。

次のコマンドを使用します。

jar -cvf [name of jar file] [name of directory with Java files]

これにより、jarアーカイブにMETA-INFというディレクトリが作成されます。このMETA-INFにはMANIFEST.MFというファイルがあり、このファイルをテキストエディターで開き、次の行を追加します。

Main-Class: [fully qualified name of your main class]

次に、このコマンドを使用します。

Java -jar [name of jar file]

プログラムが実行されます:)

5
ForYourOwnGood

Jexecutableは、Javaプログラム用のWindows exeを作成できます。 jarをexeファイルに埋め込み、Windowsプログラムのように実行できます。

3
Joe

WinRun4J をご覧ください。これはWindowsのみですが、unixには(ユーザーから見て)ビンのように見える実行可能スクリプトがあるためです。 WinRun4Jを簡単に変更して、UNIXでコンパイルすることもできます。

設定ファイルが必要ですが、ハードコードされたオプションで再コンパイルし、設定不要のexeのように動作します。

3
KitsuneYMG

GCJ to compile を使用して、Javaプログラムをネイティブコードにできます。
ある時点で、彼らは Eclipseネイティブバージョン にコンパイルしました。

2
lothar

Java Web Startは、インターネットからJavaリッチクライアントをエンドユーザーのデスクトップ(OSがWindows、Mac、または* nix)に直接インストールするための優れたテクノロジーです。それは、デスクトップ統合と自動更新、その他の多くの利点を備えています。

JWSの詳細については、 JWS情報ページ を参照してください。

1
Andrew Thompson

スクリプトを作成して実行可能にします。スクリプトは、コマンドラインで通常使用するもののようになります。

Java YourClass

これは、すでに.Javaファイルをコンパイルしており、Javaが.classファイルを見つけられることを前提としています。 Javaが.classファイルを見つけられない場合、-classpathオプションを使用するか、CLASSPATH環境変数を設定することを検討してください。

1
allyourcode

launch4j を見てください

1
Maurice Perry

前述のとおり、launch4jを見て、JARファイルの実行可能ファイルを作成できます。また、jarファイルに.exeラッパーを配置して再配布できる「JExePack」と呼ばれるものがあります(注:クライアントは、PCでプログラムを実行するためにJREを必要とします)GCJで作成されたExesはこの依存関係がありますが、プロセスはもう少し複雑です。

0
Vini