2012-02-27 12 views
4

コンパイル済みのjarファイルの実行中に次のエラーが発生しました。私は私のJavaを再インストールしましたが、私の問題はまだ解決されていません。 MANIFEST.MFファイルによって現在メインクラスマニフェスト属性のロードに失敗しました

Failed to load Main-class Manifest Attribute from 
D:\Tools\Lodable_Creation\dist\Lodable_Creation.jar 

のように見えます。

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.1 
Created-By: 1.6.0-b105 (Sun Microsystems Inc.) 
Main-Class: main 
X-COMMENT: Main-Class will be added automatically by build 

私はNetbeans 6.9.1 IDEを使用しています。

+0

http://stackoverflow.com/questions/2591516/why-its-failed-to-load-main-class-manifest-attribute-from-jar-fileに関連する可能性があります – Raghuram

+0

あなたのマニフェストの外観はどうですか?メインクラスの属性を指定しようとしましたか? –

+1

あなたのJARをwinzip/7zipのようなツールで開き、質問に 'META-INF/Manifest.mf'の内容を貼り付けてください –

答えて

3

クラス用のパッケージを使用してください。あなたはほどMain-Classを指定することができた後

package com.foo; 

public class Main { 

    public static void main(String[] args) { 
    } 
} 

:あなたのクラスは、この(パッケージおよびパブリッククラスに気づく)のようなものに見えていることを確認してくださいadarshrが示唆したように

Main-Class: com.foo.Main 
2

を、JVMがすることができませんマニフェストファイルのMain-Class属性に完全修飾名が必要なため、クラスを見つけます。

実際、メインファイルを指定する必要はありません。 JARファイルをクラスパスとして渡すだけで、javaを使用して実行するクラスの完全修飾名を与えることができます。

JARがmyJar.jarで、完全修飾のメインファイルがcom.user.Mainであるとします。次に、コマンドラインから、あなたのJARファイルを持つディレクトリに移動し、与える: -

java -classpath myJar.jar com.user.Main 

そして、これは、メインクラスを実行します。 Mainクラスで使用(インポート)されたクラスパス(またはJAR)も指定する必要があります。

詳細はthisリンクを参照してください。

0

JDK(私の場合は1.7)を使用してプロジェクトを開発し、インストールされたJREが古いバージョン(1.6)だったときにこのエラーが発生しました。可能であれば、JREを更新するか、JREのバージョンに合わせてJDKを変更してください。

関連する問題