Ausführbare Datei erstellen

Hallo zusammen,

Ich weiß die Frage sollte eigentlich schon in genug Foren abgedeckt sein, aber es will einfach nicht funktionieren:

Wie in den meisten Suchergebnissen vorgeschlagen habe ich ein JAR-Artifakt von meinem Projekt in IntelliJ IDEA 13.0 erstellt. Allerdings passiert, wenn ich die Datei dann ausführen will, gar nichts. Das Projekt besteht aus 3 Modulen (+ das Projektmodul) mit jeweils mehreren Paketen. Außerdem werden im Projektmodul Textdateien mit einigen Daten abgespeichert.

Ich denke mal von euch hat jemand etwas mehr Erfahrung mit IntelliJ, bin erst vor kurzem umgestiegen. Falls noch etwas an Info fehlt bitte Bescheid sagen!
Grüße, TheAceOfSpades

Im gegensatz zu Eclipse muss man bei IntelliJ beim Artifact auch die Main-Class angeben oder zumindest ein eigenes Manifest. Also sowas nettes wie create Runnable Jar gibt es nicht

Die Main-Class habe ich ja angegeben. Leider passiert beim ausführen trotzdem nichts.

Das stimmt nicht. Wenn man ein JAR Artifact erstellt, dann werden automatisch die Klassen gelistet, die eine main-Methode enthalten. Nach der Auswahl wird das Manifest erstellt.

Okey hab jetzt bei mir selbst mal ein Project mit einem Artifact erstellt.

Hier mal eine Schritt fuer Schritt anleitung wie es bei mir funktioniert hat/.

  1. File -> Project Structure
  2. Artifacts
  3. gruenes Plus -> Jar -> Empty
  4. aus liste Available Elements den Punkt compile output auswaehlen (mit doppelklick)
  5. Create Manifest
  6. Main Class auswaehlen
  7. Ok

Dann kannst du mit Build ->Build Artifacts das ergebnis bauen lassen.

Wenn dann das Jar immer noch nicht runnable ist bleibt dir wohl nichts anderes uebrig als schaun was sonst schief gelaufen ist.
z.B. Mit einem Programm wie WinRar oder 7zip mal in das jar schaun ob das Manifest auch eingetragen ist.

Hast du schon mal mit java -jar das jar in der Console ausgefuert?

Das sind so meine Tips

*** Edit ***

Sowas war bei mir gemeint mit

beim Artifact auch die Main-Class angeben

Habs bei meiner Schritt fuer Schritt Anleitung nun genauer beschrieben

Ok danke für die Tipps :slight_smile:
Über die Konsole habe ich jetzt gesehen dass es doch startet. Zunächst haben die übrigen Module gefehlt. Nachdem ich alle Module mitkompiliert habe kommt jetzt der von mir am meisten befürchtete (aber erwartete) Fehler: Die Textdateien werden nicht mehr gefunden. Irgend ne Ahnung wie ich es mache dass die Anwendung sie dann trotzdem findet?

Hier muss ich nur antworten, dass ich dich gerade nicht verstehe, da ich nicht weis welche Text-Datein es gibt

Kannst du das ganze etwas naeher beschreiben

Na klar. Die Anwendung soll Spielparameter bearbeiten, darunter z.B. auch Gegnerkarten. Diese werden von einer Textdatei geladen über einen BufferedReader, die betroffene Stelle ist z.B.
reader = new BufferedReader(new FileReader("standard_gegner.txt"));
An die gleiche Stelle werden die bearbeiteten Daten dann auch wieder gespeichert. Das Problem ist nun, dass die Jar andere Dateipfade enthält und der Reader die Textdateien darin dann nicht mehr erkennt.

Das Problem wäre also nun eher, wie ich die Dateipfade so ändere, dass sie sowohl in der IDE als auch in der Jar gefunden werden.

Ich hoffe es ist jetzt klarer was das momentane Problem ist.

bei den Run configurations kannst du das Working Directory angeben, vl kannst du da einen sinnvollen Ausgangspfad setzen, sodass das nachher mit der JAR funtioniert