Fehlermeldung bei Ausführung von .jar-Datei

Diskutiere Fehlermeldung bei Ausführung von .jar-Datei im Allgemeine Java-Themen Bereich.
J

Java_Noob_12345

Hallo Leute,

ich habe in IntelliJ per Build Artifact meine jar-Datei erstellt. Wenn ich sie per Doppelklick ausführen möchte ploppt nur ganz kurz die Eingabeaufforderung auf für eine Millisekunde und schließt sich wieder. Danach passiert nichts mehr. Nach einer Google Recherche wurde mehrmals empfohlen per Eingabeaufforderung die jar auszuführen. Was ich als ziemlich schlechten Lösungsvorschlag betrachte. Man stelle sich vor, dass man das Programm für einen Kunden schreibt und diesem dann sagen muss:"Ach Sie wollen das Programm auch starten? Dass es ausführbar sein muss war ja so nicht abgemacht. Müssen Sie wohl schauen ob es mit cmd klappt."

Naja versucht habe ich es trotzdem und folgende Fehlermeldung bekommen.

Was ich eingegeben habe:
C:\Users\max.mustermann\IdeaProjects\Test\out\artifacts\Test_jar>Test.jar

Was mir ausgegeben wurde:
Fehler: Hauptklasse C:\Users\max.mustermann\IdeaProjects\Test\out\artifacts\Test_jar\Test.jar konnte nicht gefunden oder geladen werden
Ursache: java.lang.ClassNotFoundException: C:\Users\max.mustermann\IdeaProjects\Test\out\artifacts\Test_jar\Test.jar

Irgendwo muss ich doch einen Fehler schon vor dem erstellen der Jar gemacht haben. Ich möchte einfach nur das Programm per Doppelklick starten können. Ich hoffe, dass jemand von euch das Problem und dessen Lösung kennt.

MFG euer Java_Noob_12345
 
Zuletzt bearbeitet:
J

JustNobody

Es geht ja darum, erst einmal die Fehlermeldung zu sehen. Es ist also kein "Workaround", den du ständig anwenden sollst sondern eine Fehlersuche! Ohne Fehlermeldung kann Dir niemand sagen, was Du falsch gemacht hast.

Die Fehlermeldung sieht so aus, dass Du im Manifest die Hauptklasse falsch angegeben hast. Das ist natürlich nicht das jar File sondern da muss die Klasse rein, die die main Methode enthält. Also sowas wie my.package.MainClass
 
J

Java_Noob_12345

Es geht ja darum, erst einmal die Fehlermeldung zu sehen. Es ist also kein "Workaround", den du ständig anwenden sollst sondern eine Fehlersuche! Ohne Fehlermeldung kann Dir niemand sagen, was Du falsch gemacht hast.

Die Fehlermeldung sieht so aus, dass Du im Manifest die Hauptklasse falsch angegeben hast. Das ist natürlich nicht das jar File sondern da muss die Klasse rein, die die main Methode enthält. Also sowas wie my.package.MainClass
Das Manifest passt. Die einzige Klasse "main" samt dem package ist darin angegeben. Wurde schließlich automatisch generiert als ich das Artifact erstellt hatte. Ich muss noch dazu anmerken, dass ich generell keine einzige .jar Datei ausführen kann.
 
J

JustNobody

Deine jar Datei wird also ausgeführt, wenn Du es mit
java -jar Test.jar
startest?
 
J

JustNobody

Dann habe ich eine gute und eine schlechte Nachricht für Dich.
Die Schlechte:
Deine Aussage, dass das Manifest passt, ist falsch. Zeig uns mal den Inhalt der mainfest Datei aus deinem jar file.
Die Gute:
Es scheint so, dass das Java auf Deinem Rechner soweit richtig konfiguriert ist und jar Dateien richtig aufgerufen werden. Da hatte ich zuerst Bedenken nach Deiner Aussage in #3.
 
J

Java_Noob_12345

Manifest-Inhalt:

Manifest-Version: 1.0
Main-Class: sample.Main
 
J

JustNobody

Du hast das auch aus dem jar File geholt? Das IntelliJ dir eine META-INF/MANIFEST.MF im src erzeugt hat, glaube ich Dir (Da Du von Artifact geschrieben hast, schließe ich mal auf IntelliJ, zumindest heisst es dort auch so). Da mag der Inhalt auch so sein. Aber nach der Fehlermeldung zu schließen hat er ja eben nicht diese sample.Main als Hauptklasse.
 
J

Java_Noob_12345

Du hast das auch aus dem jar File geholt? Das IntelliJ dir eine META-INF/MANIFEST.MF im src erzeugt hat, glaube ich Dir (Da Du von Artifact geschrieben hast, schließe ich mal auf IntelliJ, zumindest heisst es dort auch so). Da mag der Inhalt auch so sein. Aber nach der Fehlermeldung zu schließen hat er ja eben nicht diese sample.Main als Hauptklasse.
Ich zeige dir mal alle Schritte, die ich getan habe um es zu kontrollieren:

Schritt 1:
Die gesuchte jar-Datei finden.
Test jar.PNG

Schritt 2:
Die jar-Datei zu einer Zip umwandeln um sie öffnen zu können (hätte es natürlich mit Win-Rar auch machen können).
Test jar zip.PNG

Schritt 3:
Extrahieren und Manifest finden.
Manifest finden.PNG

Schritt 4:
Manifest-Datei rauskopieren und wieder reinkopieren.
Manifest rauskopieren und reinkopieren.PNG

Schritt 5:
Manifest überprüfen.
Manifest überprüfen.PNG

Also zusammengefasst. Ja ich habe das aus dem jar File geholt.
 
J

JustNobody

Ich hatte jetzt per PM noch etwas Kontakt zu @Java_Noob_12345 und habe auch seinen aktuellen Stand bekommen.

Das Kernproblem, welches ich gesehen habe: Ein fat jar mit javafx ist durchaus problematisch, denn man muss ja per module path sagen, wo das openjfx zu finden ist. Desweiteren war eine module-info.class in dem jar File mit drin und ich meine dadurch wurde sample.Main nicht gefunden:
Code:
C:\Temp>java --module-path .\javafx-sdk-11.0.2\lib --add-modules javafx.controls,javafx.fxml -jar Test.jar
Fehler: Hauptklasse sample.Main konnte nicht gefunden oder geladen werden
Ursache: java.lang.ClassNotFoundException: sample.Main
Ich habe das vorhandene Test.jar etwas bereinigt - da waren sehr viele Libraries mit eingebunden und so ... und habe nur die Test JavaFX Teile drin gelassen:
Code:
C:\Temp>jar tvf Test.jar
    50 Fri Mar 13 11:25:40 CET 2020 META-INF/MANIFEST.MF
     0 Fri Mar 13 11:25:40 CET 2020 META-INF/
     0 Fri Mar 13 11:25:40 CET 2020 sample/
  1200 Fri Mar 13 11:23:12 CET 2020 sample/Main.class
   176 Fri Mar 13 11:24:28 CET 2020 sample/sample.fxml

C:\Temp>
Und damit liess sich das jar file starten mit dem Aufruf wie oben angegeben.

Das ist erst einmal, was ich so von meiner Seite aus machen konnte. Aber der große Experte bin ich jetzt im Bereich JavaFX auch nicht. Es gibt wohl die Möglichkeit, hier per jlink ein Image zu bauen oder so, aber ich habe das jetzt nur einmal kurz betrachtet und es hat nicht so geklappt, wie ich mir das gewünscht hätte bei meinem gradle Test.

Aber an der Stelle steige ich auch hier erst einmal aus, denn da kommen wir in einen Bereich, in dem ich bisher kaum unterwegs war. Da kann evtl. noch jemand anderes übernehmen....
 
Thema: 

Fehlermeldung bei Ausführung von .jar-Datei

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben