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.
Egal wie ich den „Build JAR“-Prozess von IntelliJ verdrehe, die Ausgabe meines Moduls erscheint leer (neben einer META-INF Datei).
Anweisungen:
Datei -> Projektstruktur -> Projekt Einstellungen -> Artefakte -> Klicken + (Pluszeichen) -> Krug -> Von Modulen mit Abhängigkeiten...
Wählen Sie a Hauptklasse (Der eine mit main() -Methode), wenn Sie das JAR lauffähig machen müssen.
Wählen In das Zielglas extrahieren
Klicken OK
Klicken Anwenden/OK
Das obige legt das “Skelett” fest, wo das Glas gespeichert wird. Um es tatsächlich zu erstellen und zu speichern, gehen Sie wie folgt vor:
Es schlägt fehl, wenn einige Klassen in Ihrem enthaltenen JAR mit RSA signiert sind.
– Asif Shahzad
7. März 2012 um 13:01 Uhr
Diese Methode schlägt immer noch fehl, die JAR-Datei wird nicht ausgeführt
– Samuel Owino
27. Juni 2017 um 10:20 Uhr
Es scheint, dass jemand wirklich sehr hart gearbeitet hat, damit es nicht funktioniert. Es ist so schade, dass es nie funktioniert. Ich habe mindestens 50 verschiedene Antworten ausprobiert und keine davon hat funktioniert. Und es ist jedes Mal die gleiche Geschichte. Jetzt reserviere ich mir eine Woche, um es einfach als JAR auszugeben, da jeder in unserem Unternehmen der Meinung ist, dass es ein echter Aufwand ist, ein Ausgabejar zu produzieren.
– Eindrucksvoll
15. Januar 2018 um 9:02 Uhr
Wie viele vor mir geschrieben haben, ist dies eine Vereinfachung, die manchmal funktioniert. Bitte beachten Sie die Antwort von @zsolt tolvali unten. Aus Sicht von IntelliJ wäre es gut, den JAR-Erstellungsprozess zu einer STANDARDAKTIVITÄT beim Erstellen eines neuen Projekts zu machen, da die wenigsten Leute ihn nicht brauchen!
– Etamar Laron
14. März 2018 um 6:51 Uhr
Es ist fast 2020, und wir haben fast ein selbstfahrendes Auto und können immer noch nicht herausfinden, wie man ausführbare JAR-Dateien in Intellij erstellt
– 1234
6. Dezember 2019 um 2:30 Uhr
Dies ist immer noch ein Problem im Jahr 2017, ich hoffe, es wird jemandem da draußen helfen! Ich habe 2 Möglichkeiten gefunden, um funktionierende JAR-s unter IntelliJ 2017.2 zu erstellen
1. Artefakt aus IntelliJ erstellen:
Gehen Sie zur Projektstruktur:
Erstellen Sie ein neues Artefakt:
Wählen Sie die Hauptklasse aus und stellen Sie sicher, dass Sie den Manifestordner ändern:
Sie müssen das Manifest-Verzeichnis ändern:
<project folder>\src\main\java
Ersetzen Sie “Java” durch “Ressourcen”
<project folder>\src\main\resources
So sollte es aussehen:
Dann wählen Sie die Abhängigkeiten aus, die Sie IN Ihr JAR oder IN DIE NÄHE Ihrer JAR-Datei packen möchten
Um Ihr Artefakt zu bauen, gehen Sie auf Artefakte bauen und wählen Sie “Wiederaufbau”. Es erstellt einen “out”-Ordner mit Ihrer JAR-Datei und ihren Abhängigkeiten.
Fügen Sie das Maven-Ziel „assembly:single“ nach dem zuletzt auszuführenden Build hinzu
Speichern Sie es und führen Sie es dann aus
Durch dieses Verfahren wird die JAR-Datei im Ordner „Ziel“ erstellt
Ändern Sie das Manifest-Verzeichnis in src/resources ist der entscheidende Punkt !!! danke~
– Fantouch
28. November 2017 um 12:28 Uhr
Ich bekam no main manifest attribute Übernahme obiger Lösungen. Niemand hat erwähnt, das zu ändern path to manifest. Danke!!
– Prometheus
2. September 2018 um 5:46 Uhr
Wie wäre es mit Quellcode in Scala? Java ist nicht das, was ich verwende
– Kiwi
20. Februar 2019 um 15:52 Uhr
Anstelle von Ressourcen können Sie auch das Verzeichnis in das über java ändern, z ...\src\main\java -> ...\src\main und es funktioniert. Jet Brains sollte diesen Standard wirklich beheben, es ist immer noch ein Problem in 2020.1.4.
– Keeely
22. September 2020 um 10:19 Uhr
@ Keeely Ich glaube, sie haben es behoben. Die Voreinstellung ist jetzt ...\src\main\resourses und wenn Sie dort keine Manifestdatei haben, wird automatisch eine Datei erstellt.
– Roy Cohen
12. Dezember 2020 um 21:41 Uhr
Ich hatte dieses Problem kürzlich und denke, dass diese Schritte einfach zu befolgen sind, wenn bei einer früheren Lösung oder einem Link Details fehlen.
So erstellen Sie eine .jar mit IntelliJ IDEA 14.1.5:
Datei > Alles speichern.
Führen Sie den Treiber oder die Klasse mit der Hauptmethode aus.
Datei > Projektstruktur.
Wählen Sie den Reiter „Artefakte“.
Klicken Sie auf die grüne Plus-Schaltfläche oben im Fenster.
Wählen Sie JAR aus dem Dropdown-Menü Hinzufügen aus. Wählen Sie „Von Modulen mit Abhängigkeiten“
Hauptklasse wählen.
Die Optionsschaltfläche sollte “in Ziel-JAR extrahieren” auswählen. Drücke OK.
Aktivieren Sie das Kontrollkästchen “Build on make”
Drücken Sie Anwenden und OK.
Wählen Sie im Hauptmenü das Build-Dropdown aus.
Wählen Sie die Option Artefakte erstellen.
hast du etwas verpasst? Es gibt eine Option zum Modul, was das sein soll. In meinem Fall wird aus Sicherheitsgründen JAR, aber JVM durch Fehler erstellt.
– sonus21
24. Oktober 2015 um 21:26 Uhr
Ich denke, diese Liste ist alles. Möglicherweise haben Sie etwas mit Ihren Java-Einstellungen, das es aus Sicherheitsgründen stoppt. Hat noch jemand Gedanken dazu?
– Benutzer5442490
11. Dezember 2015 um 1:33 Uhr
Befolgt das gleiche und ich habe Fehler: Hauptklasse JavaFundamentals.jar konnte nicht gefunden oder geladen werden, wenn diese JAR-Datei ausgeführt wird. Hier erklärt: stackoverflow.com/questions/40636790/…
– laggerok19
16. November 2016 um 20:08 Uhr
Muss dieser 12-Schritte-Prozess jedes Mal durchgeführt werden, wenn ich ein Glas erstellen möchte, oder merkt sich IntelliJ diese Aktionen, sodass Sie eine Verknüpfung dazu verwenden können?
– Andy
13. April 2018 um 16:16 Uhr
Für diejenigen, die wie ich von Bildern profitieren:
Datei -> Projektstruktur
Hier sind 2 Beispiele mit maven project, Schritt für Schritt:
Methode 1: Bauen Sie jar mit maven und pom.xml
Datei, neu, Projekt, maven
Erstellen Sie ein Paket, erstellen Sie ein Java-Programm in diesem Paket
fügen Sie bei pom.xml maven-jar-plugin hinzu.
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>somePackage.sample</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Bildschirmaufnahme:
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 JAR mit Maven ohne pom.xml-Änderung
Datei, neu, Projekt, maven
Erstellen Sie ein Paket, erstellen Sie ein Java-Programm in diesem Paket (wie oben)
Datei -> Projektstruktur -> Projekt Einstellungen -> Artefakte -> Klicken grünes Pluszeichen -> Krug -> Von Modulen mit Abhängigkeiten
Sehr wichtig!
Die MANIFEST.MF muss sich in Ihrem Ressourcenordner befinden und die Main.Class muss auf {package}-{class-name-that-contains-main-class} verweisen
Klicken Sie dann im Menü auf Bauen, Artefakte bauen, Bauen
finden Sie das Glas im out-Ordner
starte es 🙂
das funktioniert. Können Sie erklären, warum MANIFEST.MF in diesem Verzeichnis sein muss?
– Ubeogesh
21. Mai 2020 um 13:38 Uhr
Das hilft mir
– Devendra Singraul
2. Juni 2020 um 15:53 Uhr
Das ist sehr hilfreich! Die zweite Option hat für mich am besten funktioniert. Nur ein kurzes Update: IntelliJ öffnet einen zusätzlichen Assistenten zum Erstellen der Manifestdatei. Auf diese Weise können Sie es erstellen und an der richtigen Stelle platzieren, ohne etwas schreiben zu müssen.
– Microbob
2. Juli 2020 um 4:30 Uhr
Das ist sehr hilfreich
– Ronit
27. Mai 2021 um 18:19 Uhr
Wenn ich diese Lösung verwende, kommt dieser Fehler:
java -jar xxxxx.jar
kein Hauptmanifestattribut in xxxxx.jar
und Lösung ist:
Sie müssen das Manifest-Verzeichnis ändern:
<project folder>\src\main\java
Java auf Ressourcen umstellen
<project folder>\src\main\resources
das funktioniert. Können Sie erklären, warum MANIFEST.MF in diesem Verzeichnis sein muss?
– Ubeogesh
21. Mai 2020 um 13:38 Uhr
Das hilft mir
– Devendra Singraul
2. Juni 2020 um 15:53 Uhr
Das ist sehr hilfreich! Die zweite Option hat für mich am besten funktioniert. Nur ein kurzes Update: IntelliJ öffnet einen zusätzlichen Assistenten zum Erstellen der Manifestdatei. Auf diese Weise können Sie es erstellen und an der richtigen Stelle platzieren, ohne etwas schreiben zu müssen.
– Microbob
2. Juli 2020 um 4:30 Uhr
Das ist sehr hilfreich
– Ronit
27. Mai 2021 um 18:19 Uhr
Es ist wahrscheinlich etwas spät, aber ich habe es so gelöst -> mit winrar öffnen und ECLIPSEF.RSA und ECLIPSEF.SF im META-INF-Ordner löschen, außerdem “Main-class: main_class_name” (ohne “.class”) ) im MANIFEST.MF. Stellen Sie sicher, dass Sie nach der letzten Zeile zweimal “Enter” gedrückt haben, sonst funktioniert es nicht.
Informationen zu signierten Abhängigkeiten finden Sie in dieser Antwort: stackoverflow.com/questions/41746177/…
– Benutzer2241537
16. Mai 2017 um 6:12 Uhr
Was für ein verrücktes Problem. Irgendeine Idee, warum das passiert oder wie man es beheben kann? Das fühlt sich hackig an
– Andreas Nr
21. April 2018 um 22:42 Uhr
14500500cookie-checkWie erstellt man richtig JARs aus IntelliJ IDEA?yes