web-dev-qa-db-ja.com

JARファイルの実行方法

私はこのようなJARファイルを作成しました:

jar cf Predit.jar *.*

このJARファイルをダブルクリックして実行しました(うまくいきませんでした)。だから私はこのようにDOSプロンプトから実行しました:

Java -jar Predit.jar

「メインクラスのロードに失敗しました」という例外が発生しました。それで、私はこのJARファイルを解凍しました:

jar -xf Predit.jar

そして私はクラスファイルを実行しました:

Java Predit

それはうまくいった。 JARファイルが機能しなかった理由がわかりません。 JARファイルを実行する手順を教えてください

184
moon

JarファイルのマニフェストにMain-Classを指定する必要があります。

Oracleの チュートリアル には完全なデモンストレーションが含まれていますが、これもゼロからの別のものです。 2つのファイルが必要です。

Test.Java:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Hello world");
    }
}

manifest.mf:

Manifest-version: 1.0
Main-Class: Test

テキストファイルは改行またはキャリッジリターンで終わる必要があります。最後の行が改行またはキャリッジリターンで終わっていない場合、最後の行は正しく解析されません。

次に実行します。

javac Test.Java
jar cfm test.jar manifest.mf Test.class
Java -jar test.jar

出力:

Hello world
192
Jon Skeet
Java -classpath Predit.jar your.package.name.MainClass
51
Lynch

Jarチェックを実行する前に、Main-Class: classnameMANIFEST.MFファイルにあるかどうかを確認します。 MANIFEST.MFがjarファイル内にあります。

Java -jar filename.jar
19
KARTHIKEYAN.A

マニフェストをjarに追加する必要があります。これは、Javaランタイムにメインクラスが何であるかを伝えます。以下の内容でファイル 'Manifest.mf'を作成します。

Manifest-Version: 1.0
Main-Class: your.programs.MainClass

'your.programs.MainClass'を実際のメインクラスに変更してください。ファイルをJarファイルの 'META-INF'という名前のサブフォルダに配置します。あなたはそのために任意のZipユーティリティを使用することができます。

14

.class、.jarファイルを作成するための非常に簡単な方法。

Jarファイルを実行します。マニフェストファイルについてあまり心配する必要はありません。シンプルでエレガントにしましょう。

JavaサンプルHello Worldプログラム

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

クラスファイルのコンパイル

javac HelloWorld.Java

jarファイルを作成する

jar cvfe HelloWorld.jar HelloWorld HelloWorld.class

または

jar cvfe HelloWorld.jar HelloWorld *.class

jarファイルを実行する

 Java -jar HelloWorld.jar

または

Java -cp HelloWorld.jar HelloWorld
11
nagendra547

Jarファイルを実行するためだけにマニフェストを作成したくない場合は、jarファイルを実行するときにコマンドラインから直接メインクラスを参照できます。

Java -jar Predit.jar -classpath your.package.name.Test

これはjarファイルで実行するメインクラスを設定します。

10
Egil

Java

class Hello{
   public static void main(String [] args){
    System.out.println("Hello Shahid");
   }
}

manifest.mf

Manifest-version: 1.0
Main-Class: Hello

コマンドラインで:

$ jar cfm HelloMss.jar  manifest.mf Hello.class 
$ Java -jar HelloMss.jar

出力:

Hello Shahid

Eclipse Runnable JARファイル

Javaプロジェクトを作成する - RunnableJAR

  • jar files が使用されている場合は、それらをプロジェクトのビルドパスに追加します。
  • Runnable Jarファイルの作成中にmain()を持つクラスを選択してください。 enter image description here

メインクラス

public class RunnableMainClass {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Name : "+args[0]);
        System.out.println(" ID  : "+args[1]);
    }
}

Run Jar ファイルをJavaプログラム( cmd )を使用して引数を指定し、出力を取得してEclipseコンソールに表示します。

public class RunJar { 
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        String jarfile = "D:\\JarLocation\\myRunnable.jar";
        String name = "Yash";
        String id = "777";

        try { // jarname arguments has to be saperated by spaces
            Process process = Runtime.getRuntime().exec("cmd.exe start /C Java -jar "+jarfile+" "+name+" "+id);
                    //.exec("cmd.exe /C start dir Java -jar "+jarfile+" "+name+" "+id+" dir");
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ()));
            String line = null;
            while ((line = br.readLine()) != null){
                sb.append(line).append("\n");
            }
            System.out.println("Console OUTPUT : \n"+sb.toString());
            process.destroy();
        }catch (Exception e){
            System.err.println(e.getMessage());
        }
   }
}

Eclipseで ショートカットを見つける

ヘルプ►ヘルプ目次►Java開発ユーザーガイド►参照►メニューとアクション

3
Yash

これらの詳細に対処したくない場合は、EclipseまたはNetBeansのエクスポートjarアシスタントも使用できます。

3
fortran

私はこのフォルダ構造を持っています:

D:\ JavaProjects\OlivePressApp\com\lynda\olivepress\Main.class D:\ JavaProjects\OlivePressApp\com\lynda\olivepress\press\OlivePress.class D:\ JavaProjects\OlivePressApp\com\lynda\olivepress\olives \カラマタ.class D:\ JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Ligurian.class D:\ JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Olive.class

Main.classはパッケージcom.lynda.olivepressにあります

他に2つのパッケージがあります。

com.lynda.olivepress.press

com.lynda.olivepress.olive

1)1行目がメインクラス、2行目が空の2行の"Manifest.txt"という名前のファイルを作成します。

Main-Class: com.lynda.olivepress.Main

D:\ JavaProjects\OlivePressApp\Manifest.txt

2)マニフェストとメインクラスのエントリポイントを使用してJARを作成する

D:\ JavaProjects\OlivePressApp> jar cfm OlivePressApp.jar Manifest.txt com/lynda/olivepress/Main.class com/lynda/olivepress/*

3)JARを実行する

Java -jar OlivePressApp.jar

注:com/lynda/olivepress/*は、1)の前に、上記の他の2つのパッケージを含めることを意味します。

2
Gabriel D