2

次のディレクトリ構造とファイルがあります。

Folder
    +
    |--/org
    |--Online.java
    |--Online.class

次のコードを実行すると:

C:\>cd Folder
C:\Folder>java Online http://www.google.com google.html

ファイルが実行され、要件に応じて正しい出力が得られます。

ここで、パッケージ 'org' と Online.class ファイルを 1 つの Jar ファイルに追加したいと思います (例: Online.jar)。

次のコードを実行してそれを行いました:

jar cvf Online.jar *

今、私は次のコードを実行しようとしています:

java -jar Online.jar http://www.google.com google.html

エラーが表示されます:

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

ここで私を助けてくれる人はいますか?ここで何が問題なのか知りたいですか?

4

5 に答える 5

2

jar の作成方法によって異なります。メインクラス名のマニフェストファイルが必要です

私は通常 ant を使用してビルドするため、ビルド タスクは次のようになります。

    <target name="Build_myjar">
        <jar destfile="my.jar" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Main-Class" value="MyMainClass"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="bin"/>
        </jar>
    </target>

マニフェストには既に MainClass 名があることに注意してください。したがって、MainClass の呼び出しが処理されます。

于 2013-05-28T14:03:55.193 に答える
0

jar -cmf MANIFEST_FILE jarfile.jar *.classあなたと同じエラーが発生するので、通常はコマンドを使用してカスタムマニフェストファイルを指定します。

これは私が使用する単純なマニフェスト ファイルです ( src ) 。

Manifest-Version: 1.0
Class-Path: .
Main-Class: MainClassName

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

java -jar jarfile.jar実行するときは、Windows で .jarを使用するか、ダブルクリックします。

于 2013-05-28T14:24:30.093 に答える