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
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/.
File → Project Structure
Artifacts
gruenes Plus → Jar → Empty
aus liste Available Elements den Punkt compile output auswaehlen (mit doppelklick)
Create Manifest
Main Class auswaehlen
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
Ü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?
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