1

次のJavaコードがあります。本来の目的は果たしますが、jar ファイルの作成に問題があります。

import java.io.*;
public class openfile{
    public static void main(String argv[]) {
        try {
                String line;
                Process p = Runtime.getRuntime().exec
                ("c:\\Users\\user\\Desktop\\"+ "shares.bat /A");
                 BufferedReader input =
                 new BufferedReader
                 (new InputStreamReader(p.getInputStream()));
                 input.close();
                }
           catch (Exception err) {
                  err.printStackTrace();
               }
    }
}

問題なくコンパイルでき、Java openfile を使用すると問題なく実行されます。次のコマンドを使用して jar ファイルを作成しようとすると、問題が発生します。

  jar cf MyJar.jar manifest.txt openfile.java openfile.class

ただし、使用してjarを実行しようとすると

java -jar MyJar.jar

次のエラー メッセージが表示されます。

Failed to load Main-Class manifest attribute from MyJar.jar

manifest.txt のテキストは次のとおりです。

Main-Class: openfile 

私が間違っていることは何ですか?

4

3 に答える 3

2

私は私が信じる問題を抱えています。

あなたのmanifest.txtファイルで

マニフェスト.txtのテキストは次のとおりです。

Main-Class: openfile 

最後の行の後に改行を入れる必要があります

したがって、この行の後にEnter(<-)(キャリッジリターン)と入力するだけです。

Main-Class: openfile 

この太陽のドキュメントを参照してください。ここに抜粋があります。

警告:テキストファイルは、改行またはキャリッジリターンで終了する必要があります。最後の行は、改行またはキャリッジリターンで終了しない場合、適切に解析されません。

これで確認しましたが、動作します。お役に立てれば 。

于 2010-08-16T17:29:41.547 に答える
0

マニフェストファイルの内容は次のとおりである必要があります。

マニフェスト-バージョン:1.0
メイン-クラス:openfile

これらの2行の後に空白行を残しておくと、問題が発生する可能性があります。

于 2010-08-17T02:03:51.267 に答える
0

main メソッドが宣言されたクラス openfile があると仮定すると、これは機能するはずです。

jar cvef MyJar.jar openfile openfile.class

すでにマニフェストがあり、それを含めたい場合は、これを試してください。

jar cvmf MyJar.jar manifest.txt openfile.class
于 2010-08-16T17:57:19.363 に答える