Jar - mit ecipse erzeugt - funktioniert nicht.

equin

Aktives Mitglied
Hallo,

ich will eine ausführbare jar-datei von diesem Test-Programm erzeugen:
Java:
public class JarTest {
	public static void main(String[] args) {
		System.out.println("test");
	}
}

Wenn ich hieraus mit "File->Export->JAR file" erzeuge, bekomme ich zwar eine JAR-Datei, allerdings lässt diese sich nicht öffnen "Failed to load Main-Class manifest attribute from C:\...test.jar"

Woran liegt das?

Viele Grüße
equin
 
Weil das Println in deinem Fall in der Konsole ausgegeben(oder Eclipse Konsole) wird und wenn du keine Grafische Oberfläche hast die Jar Datei keine möglichkeit implementiert hat, eine Textausgabe auszuwerfen.

Mfg
 
eigentlich sollte sich dann garnichts öffnen, hast du auch beim Exportieren das richtige Projekt gewählt? Kann passieren 😛

Normalerweise kann sich dein Source als JAR aber auch nicht mit einer Funktion öffnen. Da fehlt halt die Ausgabemöglichkeit was momentan bei dir die Konsole ist.

Probier mal ob du die JAR Datei öber die DOSBOX (cmd) ausführen kannst. Dann siehst du den Grund.
 
Eine .jar Datei ist nicht immer unbedingt ausführbar, z.B. wenn es Bibliotheken sind. Wenn man eine .jar Datei ausführbar machen will, ist es zwingend erforderlich zu sagen, welche .class Datei innerhalb des .jar Archives diejenige ist, die man ausführen möchte.
Dies geschieht innerhalb der META-INF/MANIFEST.MF mit dem Eintrag Main-Class.
Der Eintrag darf nur ein einziges Mal in der MANIFEST.MF auftauchen und muss den kompletten Klassenpfad enthalten.
Dieser Eintrag fehlt, wenn man mittels Export-Jar File aus Eclipse exportiert.
Einen guten Job macht z.B. FatJar, als Eclipse Plugin.

Hatti
 
Dieser Eintrag fehlt, wenn man mittels Export-Jar File aus Eclipse exportiert.

Dies ist so nicht korrekt, auch der Default-Jar-Exporter kann Manifest Dateien erzeugen und ins Jar inkludieren, sofern man die richtigen Haken setzt und die Main-Klasse auswählt.
Zur Not kann man auch die Manifest Datei beim ersten Lauf automatisch erzeugen und im Workspace speichern lassen. Dann kann man sie auch manuell editieren (um z.B. den Class-Path zu setzen was von außerhalb nicht geht) und beim nächsten Export die manuell bearbeitete Version ins Jar packen lassen.

Edit: Die "wichtigen" Einstellungen hierfür befinden sich erst auf der dritten und damit letzten Seite des Jar-Exporters. Vielleicht klickt Ihr einfach zu früh auf "Finish" was bereits ab der ersten Seite geht 😉
 
Zuletzt bearbeitet:

Zurück
Oben