Jar-Datei mit Doppelklick nicht ausführbar?

Aus Byte-Welt Wiki
Wechseln zu: Navigation, Suche

Unter Windows kann es passieren, dass Packprogramme die Datei-Endung .jar für sich zur Verarbeitung registrieren. Manchmal ist auch durch eine fehlerhafte Verknüpfung die Registrierung der Dateiendung für Java-Archive gelöscht, umgelenkt, oder zerstört worden.

Im folgenden Beitrag werden wir versuchen, das Problem zu beheben.

"Failed to load main class"

Wenn der Interpreter aus irgendeinem Grund die Start-Klasse (Klasse mit der main()-Methode) nicht laden kann, gibt er diese Fehlermeldung aus: "Failed to load main class" Die Ursachen dafür können recht vielfältig sein. Z.B. ein Fehler in der Manifest-Datei.

Fehler in der Manifest-Datei

Hauptsächlich 3 Fehler in der Manifest-Datei des Jar-Archivs können dazu führen, dass das Programm nicht startet, bzw. in der Kommandozeile die Fehlermeldung "Failed to load main class" ausgibt.

  1. Es fehlt der Eintrag der Hauptklasse (Main-Class), also der Klasse, die die main()-Methode zum Starten der Anwendung enthält.
  2. Die Main-Class wurde nicht korrekt angegeben. Also auch an Paketnamen denken.
  3. In selbst erstellten Manifest-Dateien wird gerne mal die Leerzeile am Ende vergessen.

Eine funktionierende Manifest-Datei kann z.B. wie in diesem Beispiel aussehen: JAR-Datei - Manifest-Beispiel

Eine IDE wird diese Fehler nicht machen.

Einstellungen der Packprogramme kontrollieren

Wie oben erwähnt, kann eine falsche Dateizuordnung das Starten von Jar-Dateien per Doppelklick verhindern. Daher sollten zuerst die auf dem System installierten Packprogramme auf die eingestellten Dateiendungen kontrolliert werden. WinRar und WinZip und auch ältere Versionen von 7Zip haben .jar oft für sich registriert.

Registry-Einstellungen kontrollieren/reparieren

Wenn im Packprogramm die jar-Endung deaktiviert ist und dennoch Jar-Dateien nicht per Doppelklick starten, sollten die Registry-Einstellungen kontrolliert bzw. repariert werden.

Zunächst öffnen wir uns durch Drücken der Tastenkombination [Windows-Taste]+[R] eine Kommandozeile und tippen dort regedit hinein und bestätigen unsere Eingabe mit [Enter].

Datei:Win+R.png

Auf einigen Windows-Systemen wird nun das Administrator-Passwort verlangt, auf anderen meldet sich eine Sicherheitsabfrage der User Access Control (UAC), die bestätigt werden muss.

Anschließend öffnet sich der Registry-Editor. Auf der linken Seite im Fenster finden wir nun Schlüsselverzeichnisse.

Datei:RegEdit.png

Wir klicken uns durch, nach:

HKEY_CLASSES_ROOT\jarfile\shell\open\command
oder (je nach Windows-Version)
HKEY_CLASSES_ROOT\jar_auto_file\shell\open\command

Nun öffnen wir den Schlüsseleditor durch Doppelklick auf den Namen Standard auf der rechten Fensterseite.

Datei:Zeichenfolge bearbeiten.png

Der Wert des Schlüssels besteht aus dem Pfad zum Interpreter und den Wildcards, die den Platz für übergebene Dateinamen freihalten.

"C:\Program Files (x86)\Java\jre7\bin\javaw.exe" -jar "%1" %*

Der Pfad zur JRE muss also aus unserem System abgelesen oder kopiert und anschließend, entsprechend der Vorlage in der grau hinterlegten Zeile, in den Schlüsseleditor eingefügt werden. Ein Klick auf OK beendet die Operation. Der Registry-Editor kann nun geschlossen werden.

Jetzt sollten sich Jar-Dateien wieder per Doppelklick starten lassen.