1312 Stimmen

Kann JAR-Datei nicht ausführen: "kein Hauptmanifestattribut"

Ich habe eine Anwendung installiert, wenn ich versuche, sie auszuführen (es handelt sich um ein ausführbares Jar), passiert nichts. Wenn ich es von der Befehlszeile ausführe mit:

java -jar "app.jar"

Ich bekomme die folgende Meldung:

kein Hauptmanifestattribut in "app.jar"

Normalerweise, wenn ich das Programm selbst erstellt hätte, hätte ich ein Hauptklassenattribut zur Manifestdatei hinzugefügt. Aber in diesem Fall, da die Datei von einer Anwendung stammt, kann ich das nicht tun. Ich habe auch versucht, das Jar zu extrahieren, um zu sehen, ob ich die Hauptklasse finden könnte, aber es gibt zu viele Klassen und keine von ihnen hat das Wort "main" in ihrem Namen. Es muss einen Weg geben, das zu beheben, denn das Programm läuft einwandfrei auf anderen Systemen.

0voto

M.87 Punkte 1

Ich hatte ein ähnliches Problem wie du, unten findest du eine Syntax zum erfolgreichen Erstellen einer .war-Datei:-

jar {cvf} [jar-file] [manifest-file]

Manifest Beim Erstellen (c) oder Aktualisieren (u) einer JAR-Datei definiert das Manifest-Element die bereits vorhandenen Manifest-Dateien mit Namen und Werten von Attributen, die in MANIFEST.MF in der JAR-Datei enthalten sein sollen. Das Manifest-Element muss angegeben werden, wenn die Option f vorhanden ist '[1]'.

Um eine Manifest-Datei zu erstellen, müssen Sie Werte für einige Attribute definieren. Sie könnten ein Asterisk (*) nach dem Dateinamen (.WAR) setzen, um die Erstellung der Manifest-Datei zu vermeiden:-

jar -cvf foo.war *

Ehrlich gesagt weiß ich nicht, ob das bewährte Praxis ist, aber es funktioniert für mich :).

0voto

KARTHIKEYAN.A Punkte 14230

Überprüfen Sie, ob Ihre JAR-Datei in MANIFEST.MF Main-Class verfügbar ist oder nicht

first.java

class first
{
        public static void main (String arg[ ])
        {
           System.out.println("Willkommen in der Welt von Java");
        }
}

Vor:

Manifest-Version: 1.0
Created-By: 1.7.0_80 (Oracle Corporation)

sony@sony-VPCEH25EN:~/Documents$ java -jar first.jar
no main manifest attribute, in first.jar

Nach:

Manifest-Version: 1.0
Created-By: 1.7.0_80 (Oracle Corporation)
Main-Class: first

sony@sony-VPCEH25EN:~/Documents$ java -jar first.jar 
Willkommen in der Welt von Java

-1voto

dushkin Punkte 1855

Überprüfen Sie Ihr lokales .m2-Verzeichnis auf ein Unterverzeichnis dieses Artefakts. Wenn es vorhanden ist, löschen Sie es und führen Sie das Maven-Update erneut durch.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X