Ich verwende Intellij IDEA 12.0.4 unter MAC OS X 10.8.3, um eine JAR-Datei zu erstellen. Ich gehe zu Datei - & gt; Projektstruktur - & gt; Artefakte - & gt; + - & gt; Glas - & gt; Aus Modulen mit Abhängigkeiten - & gt; Ausgewählte Hauptklasse nach dem Surfen - & gt; Ausgewählter Extrakt zum Zieljar - & gt; Verzeichnis für META-INF wird automatisch ausgefüllt - & gt; OK - & gt; Übernehmen - & gt; OK - & gt; Bauen - & gt; Artefakte erstellen - & gt; Erstellen
Wenn ich jetzt versuche, jar auszuführen, benutze:
%Vor%Ich bekomme diesen Fehler
%Vor%Irgendwelche Hinweise, was mache ich falsch?
Um dieses Problem zu beheben, machen Sie zwei Dinge:
verschiebe META-INF in src / main / resources
dann: Datei- & gt; Moduleinstellungen öffnen
Wählen Sie Artefakte aus, entfernen Sie Ihre aktuelle und erstellen Sie eine neue, wählen Sie diesmal statt "in das Zieljar extrahieren" die Option "In das Ausgabeverzeichnis kopieren und über Manifest verknüpfen"
für den Pfad zu META-INF, lege den Pfad des Ressourcenverzeichnisses über das, wohin du META-INF kopiert hast, in ..
baue jetzt dein Artefakt
im Terminal, gehe zu dir, wo Gläser produziert wurden und laufen lassen:
java -jar yourjarfile.jar
Viel Spaß
In meinem Fall lag das daran, dass IntelliJ alle Abhängigkeiten in die Ausgabe-JAR-Datei extrahiert hatte, wodurch die Datei /META-INF/MANIFEST.MF mit etwas aus einer meiner Abhängigkeiten überschrieben wurde. Ich musste das Glas öffnen und in der realen MANIFEST.MF von der Position kopieren, die in der Eigenschaft "Manifestdatei" angegeben ist, die automatisch auf dieser Artefaktseite unter Projektstruktur eingestellt wird. "
Sie müssen die Klasse "main" für Ihr jar auswählen, um es ausführbar zu machen (d. h. Sie sollten in IDEA auf die Klasse zeigen, die public static void main(String[] args)
Tags und Links java macos intellij-idea jar