Ich habe ein Projekt, das ein einzelnes Modul und einige Abhängigkeiten enthält. Ich möchte ein JAR in einem separaten Verzeichnis erstellen, das das kompilierte Modul enthält. Außerdem möchte ich, dass die Abhängigkeiten neben meinem Modul vorhanden sind.
Unabhängig davon, wie ich den "Build Jar" -Prozess von IntelliJ verdrehe, erscheint die Ausgabe meines Moduls leer (neben einer META-INF-Datei).
quelle
Dies ist auch 2017 ein Problem, ich hoffe, es wird jemandem da draußen helfen! Ich habe unter IntelliJ 2017.2 zwei Möglichkeiten gefunden, Arbeitsgläser zu erstellen
1. Erstellen von Artefakten aus IntelliJ:
Sie müssen das Manifestverzeichnis ändern:
Ersetzen Sie "Java" durch "Ressourcen"
So sollte es aussehen:
Dann wählen Sie die Abhängigkeiten aus, die in Ihre JAR-Datei oder in die Nähe Ihrer JAR-Datei gepackt werden sollen
Um Ihr Artefakt zu erstellen, gehen Sie zum Erstellen von Artefakten und wählen Sie "Neu erstellen". Es wird ein "out" -Ordner mit Ihrer JAR-Datei und ihren Abhängigkeiten erstellt.
2. Verwenden des Maven-Assembly-Plugins
Fügen Sie der POM-Datei einen Build-Abschnitt hinzu
Durch dieses Verfahren wird die JAR-Datei unter dem Ordner "Ziel" erstellt
quelle
no main manifest attribute
die oben genannten Lösungen übernommen. Niemand hat erwähnt, die zu ändernpath to manifest
. Danke !!Ich hatte kürzlich dieses Problem und denke, dass diese Schritte leicht zu befolgen sind, wenn eine vorherige Lösung oder ein Link keine Details enthält.
So erstellen Sie eine
.jar
mit IntelliJ IDEA 14.1.5:quelle
Für diejenigen, die wie ich von Bildern profitieren:
File -> Project Structure
quelle
Hier sind 2 Beispiele mit Maven-Projekt, Schritt für Schritt:
Methode 1: Erstellen Sie ein Glas mit maven und pom.xml
Fügen Sie unter pom.xml das Maven-Jar-Plugin hinzu.
Screenshot: 4. Öffnen Sie das Maven-Projektfeld, indem Sie auf das Suchsymbol klicken und maven eingeben.
Klicken Sie auf "Reinigen" und dann auf "Installieren"
Ihre JAR-Datei wird im Zielordner angezeigt
Testen Sie Ihr Glas mit Java-Jar
Methode 2: Erstellen Sie ein Glas mit maven ohne Änderung von pom.xml
Sehr wichtig!
Die MANIFEST.MF muss sich in Ihrem Ressourcenordner befinden und die Main.Class muss auf {package} - {Klassenname, der die Hauptklasse enthält} verweisen.
quelle
Es ist wahrscheinlich etwas spät, aber ich habe es auf diese Weise gelöst -> mit winrar öffnen und ECLIPSEF.RSA und ECLIPSEF.SF im Ordner META-INF löschen, außerdem "Main-class: main_class_name" (ohne ".class"). ) in MANIFEST.MF. Stellen Sie sicher, dass Sie nach der letzten Zeile zweimal die Eingabetaste gedrückt haben, da dies sonst nicht funktioniert.
quelle
Wenn ich diese Lösung benutze , kommt dieser Fehler:
und Lösung ist :
Sie müssen das Manifestverzeichnis ändern:
Java in Ressourcen ändern
quelle
Ich habe versucht, ein JAR aus einer Kotlin- App mit mehreren Modulen zu erstellen, und habe den berüchtigten Fehler "Kein Hauptmanifestattribut" erhalten. Das Erstellen des Manifestverzeichnisses in
src/main/resources
hat ebenfalls nicht funktioniert.Stattdessen funktioniert es, wenn Sie es
src
direkt erstellen :src/META-INF/MANIFEST.MF
.quelle
Wie die Leute oben sagen, aber ich muss einen Punkt beachten. Sie müssen das Kontrollkästchen aktivieren:
quelle
Idee 8.1.3
Jar ist in Ordnung, da die Ausgabe im Verzeichnis 'output' (project / out / Production //) kompiliert ist.
Ich denke, du musst 'make' ausführen, bevor du ein Glas baust
Für Abhängigkeiten aktivieren Sie einfach "Bibliothek anzeigen" und wählen Sie aus, was Sie möchten.
quelle
Mit Maven können Sie dieses Plugin verwenden:
quelle
Vielleicht möchten Sie einen Blick auf Maven werfen ( http://maven.apache.org ). Sie können es entweder als Haupterstellungsprozess für Ihre Anwendung verwenden oder nur, um bestimmte Aufgaben über das Dialogfeld "Konfigurationen bearbeiten" auszuführen. Das Erstellen einer JAR eines Moduls in Maven ist ziemlich trivial, wenn Sie möchten, dass alle Abhängigkeiten in einer selbst ausführbaren JAR enthalten sind, die ebenfalls trivial ist.
Wenn Sie Maven noch nie zuvor verwendet haben, möchten Sie Better Builds With Maven lesen .
quelle
Wenn Sie mit Ihrem Projekt Bibliotheken von Drittanbietern verwenden oder Probleme beim ordnungsgemäßen Erstellen der MANIFEST.MF-Datei haben, kann es zu Konflikten beim Ausführen von JAR-Dateien kommen, die mit generiert wurden
oben erwähnte Methode.
Stattdessen empfehle ich Ihnen, eine leere JAR zu erstellen und alle anderen Elemente manuell zum Ausgabestamm hinzuzufügen. Einen wundervollen Blog-Artikel für diese Methode finden Sie hier: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ Ich habe die dort genannten Schritte ausprobiert und alles hat gut funktioniert für mich!
quelle
Einige der anderen Antworten sind nutzlos, da alle Änderungen verloren gehen, sobald Sie das IntelliJ IDEA-Projekt erneut aus dem Maven-Projekt importieren.
Das Erstellen der JAR muss durch eine Run / Debug-Konfiguration ausgelöst werden, nicht durch die Projekteinstellungen.
Jetbrains hat eine schöne Beschreibung, wie Sie dies hier erreichen können:
https://www.jetbrains.com/help/idea/maven.html
Scrollen Sie nach unten zu dem Abschnitt "Konfigurieren von Triggern für Maven-Ziele".
(Der einzige Nachteil ihrer Beschreibung ist, dass ihre Screenshots im Standard-Schwarz-Weiß-Farbschema anstelle des super-fantastischen Darcula-Themas vorliegen. Ugh!)
Im Grunde genommen öffnen Sie das Bedienfeld "Maven-Projekte" und finden das gewünschte Projekt (in Ihrem Fall das Projekt, das Ihr Glas erstellt). Darunter finden Sie das Maven-Ziel, das Sie ausführen möchten , (normalerweise werden durch das Ziel "Paket" Gläser erstellt) Sie öffnen das Kontextmenü darauf (klicken Sie mit der rechten Maustaste auf einen Windows-Computer), und es wird die Option "Vor dem Ausführen / Debuggen ausführen ..." angezeigt Wählen Sie und es wird Sie von dort an der Hand nehmen. Wirklich einfach.
quelle
Wenn Sie versuchen, ein Glas mit Kotlin zu erstellen, müssen Sie einen
src/main/java
Ordner erstellen und diesen Ordner als Speicherort für den META-INF-Ordner verwenden.quelle
Hier ist die offizielle Antwort der IntelliJ IDEA 2018.3-Hilfe . Ich habe es versucht und es hat funktioniert.
quelle
Mein Problem war folgendes: Ich habe Intellij IDEA (verschiedene Versionen ausprobiert) + Gradle verwendet. Als ich das Projekt kompilierte und artifacf jar erstellte, wie in den obigen Antworten angegeben, erhielt ich den Fehler "no main manifest attrubute ..."
Diese Lösung hat bei mir funktioniert (besonderer Dank geht an Thilina Ashen Gamage (siehe oben) für den Tipp):
Auszug - Wenn Sie externe Bibliotheken verwenden und ein Projekt über Projekteinstellungen erstellen - Artefakte - Hinzufügen (+) - Jar - Aus Modulen mit Abhängigkeiten , dann wahrscheinlich aufgrund eines Programmfehlers den Ordner META-INF mit der Datei MANIFEST_MF, die nicht in jar enthalten ist. Um dies zu vermeiden, erstellen Sie eine leere JAR-Datei.
Projekteinstellungen - Artefakte - Hinzufügen (+) - Glas - LEERES GLAS . Der Ordner META-INF wird dem Ressourcenordner hinzugefügt . Wählen Sie dann Ihre Hauptklasse aus. Sie sehen die folgende JAR-Struktur: Beachten Sie das Vorhandensein eines Ordners META-INF. Anschließend können Sie Ihr Projekt erstellen und Artefakte erstellen. Diese Lösung funktionierte auch für JavaFX-Anwendungen.
quelle
Wenn Sie an einem spring / mvn-Projekt arbeiten, können Sie diesen Befehl verwenden:
Die JAR-Datei wird auf dem Ziel-Directoy gespeichert.
quelle
Ameise und Maven sind weit verbreitet. Ich bevorzuge Ant, ich finde es leichter und Sie als Entwickler haben mehr Kontrolle. Einige würden vorschlagen, dass das sein Nachteil ist :-)
quelle