0

Cドライブに「Thank」という名前のフォルダーを作成しました。そのフォルダーには、T1とmyAppという2つのJavaファイルがあります。

class T1 { 
    void display() {
        System.out.println("Hey I am working");
    }
}

class myApp {
    public static void main(String args[]) {
        T1 t=new T1();
        t.display(); 
    }
}

次に、このフォルダーのjarファイルを次のように作成しました。

 c:\>jar cf myApp.jar Thank

これにより、myApp という名前の Jar ファイルが作成されます。

私も書いMain-Class: myApp in the manifest.mf fileた。

これを実行しようとすると:

c:\>java -jar myApp.jar

エラーが発生します -

ファイル myApp.jar を開こうとしているときに予期しないエラーが発生しました

出力を得るためにjarファイルを実行する方法を教えてください:

Hey I am working
4

3 に答える 3

2

を使用jar cfm myApp.jar manifest.txt *.classして jar を作成し、マニフェスト ファイルが jar 内で正しく配置されるようにする必要があります。

マニフェストの正しい場所はMETA-INF/MANIFEST.MF.

アップデート

基本的に、準備したファイルを取得することで、コードを機能させました。java ファイルとマニフェストにパッケージ宣言を追加し、myApp から MyApp クラスを大文字にします。ファイルは、次のフォルダー構造に配置されます。

tbsmac:17162802-executing-java-file-through-cmd tbsalling$ ls -lR
total 0
drwxr-xr-x  3 tbsalling  staff  102 19 Jun 18:48 META-INF
drwxr-xr-x  4 tbsalling  staff  136 19 Jun 18:57 thank

./META-INF:
total 8
-rw-r--r--  1 tbsalling  staff  46 19 Jun 18:49 MANIFEST.MF

./thank:
total 16
-rw-r--r--  1 tbsalling  staff  124 19 Jun 18:49 MyApp.java
-rw-r--r--  1 tbsalling  staff   98 19 Jun 18:48 T1.java

3 つのファイルの内容は次のとおりです。

MyApp.java:

package thank;

class MyApp {
    public static void main(String args[]) {
      T1 t=new T1();
      t.display(); 
    }
}

T1.java:

package thank;

class T1 { 
   void display() {
    System.out.println("Hey I am working");
   }
}

マニフェスト.MF:

Main-Class: thank.MyApp
Manifest-Version: 1.0

次に、次の一連のコマンドを実行します。

tbsmac:17162802-executing-java-file-through-cmd tbsalling$ javac thank/T1.java thank/MyApp.java 
tbsmac:17162802-executing-java-file-through-cmd tbsalling$ jar cfm myApp.jar META-INF/MANIFEST.MF thank/*.class
tbsmac:17162802-executing-java-file-through-cmd tbsalling$ java -jar myApp.jar 
Hey I am working

^^^そしてそれは動作します;-)

于 2013-06-18T07:22:48.340 に答える
0

次のように入力してみてください: java.exe -jar "(jar へのフル パス)"

例: java.exe -jar "C:\TestFolder\Project Java\myApp.jar"

于 2013-06-18T07:21:10.190 に答える
0

いくつかのこと:

  1. 完全なクラス名とパッケージ名をマニフェスト ファイルに追加してください。

  2. また、jar マニフェスト ファイルの最後に必ず改行を追加してください。そうでない場合はそうします。

于 2013-06-18T07:23:58.233 に答える