JAR-Dateien können nicht durch Doppelklicken auf sie unter Windows 7 ausgeführt werden

6172
dinomario10

Das Ausführen einer .jar-Datei in der Befehlszeile funktioniert einwandfrei. Ich kann jedoch keine .jar-Dateien auf meinem PC ausführen, indem Sie darauf doppelklicken . Was interessant ist, werden dieselben .jar-Dateien auf meinem Laptop mit einem Doppelklick erfolgreich ausgeführt.

Ich habe %JAVA_HOME\binund JDK_HOME\binin die PATHVariable aufgenommen.
Ich habe mich JAVA_HOMEeingestellt C:\Program Files\Java\jre1.8.0_121.
Ich habe mich JDK_HOME   eingestellt C:\Program Files\Java\jdk1.8.0_121.

Für einige Zeit verschwand die Java (TM) Platform SE-Binärdatei aus der Open withListe, und ich konnte sie erst hinzufügen, nachdem ich den HKEY_CLASSES_ROOT\jar_auto_file\shell\open\commandSchlüssel in regedit.exedie entsprechende Version geändert hatte :

C: \ Programme \ Java \ jre1.8.0_ 121 \ bin \ javaw.exe ""% 1 ".


Hier ist eine Momentaufnahme von Windows CMD, die java -versionauf meinem PC eingegeben wurde:
Java-Version in Windows CMD


Ich habe die folgenden Methoden ausprobiert, ohne Erfolg:

  • JRE und JDK neu installieren,
  • Verknüpfen von .jar-Dateien mit C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe,
  • mit assoc .jar=jarfileund ftype jarfile="C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe" -jar "%1" %*in der Kommandozeile
  • eine neue Systemumgebungsvariable OPENDS_JAVA_ARGS erstellen und auf -jar setzen .


Zusätzliche Information:

  • Ich verwende Windows 7 Professional 64-Bit (Service Pack 1), wobei die neuesten Updates sowohl auf meinem PC als auch auf meinem Laptop installiert sind.
  • Das Ausführen von .jar-Dateien durch Doppelklicken funktionierte auf meinem PC, wurde jedoch vor einiger Zeit plötzlich eingestellt. Ich habe nichts in Bezug auf Java geändert.
  • Ich habe die neueste Version von JRE und JDK (Java 8 Version 121).
  • Von den .jar-Dateien, die ich ausführen möchte, werden einige GUI-Swing-Anwendungen verwendet, und andere öffnen die Systemkonsole (sofern nicht bereits geöffnet) Runtime.getRuntime().exec(String[]).


Ich habe bereits versucht, dieses Problem mit Lösungen auf den folgenden Links zu beheben (ohne Erfolg):


Anmerkungen:

  • Ich möchte keine .jar-Dateien mit WinRAR öffnen.
  • Ich möchte .jar-Dateien nicht öffnen, indem ich java -jar jarfile.jarin cmd.exe laufe.
  • Ich suche keine Drittanbieteranwendung zum Ausführen von JAR-Dateien.


Im Moment verwende ich C:\Windows\System32\cmd.exe /k "java -jar C:\path\to\jarfile\Program.jar"als Verknüpfungspfad zum Ausführen von JAR-Dateien, aber ich bin mit dieser Lösung nicht zufrieden, da dadurch die Konsole geöffnet wird, um sogar Swing-Anwendungen auszuführen.

Ich habe dieselbe Frage über stackoverflow gestellt, aber ich wurde darauf hingewiesen, dass Superuser für diese Art von Frage eher geeignet ist.

2

3 Antworten auf die Frage

1
Stigma

Ich traf jemanden, der das gleiche Problem hatte, das Sie heute hatten. Und irgendwie habe ich es geschafft, es zu reparieren, obwohl ich nicht ganz sicher bin, was es repariert hat; Ich kann Ihnen nur die ungefähren Schritte anbieten, die ich unternommen habe.

Mit regedit habe ich festgestellt, dass die Registrierungseinträge HKEY_CURRENT_USER und HKEY_LOCAL_MACHINE nicht übereinstimmen. HKLM hatte das typische .jar-> jarfileSetup und jarfilezeigte auf den richtigen Pfad. HKCU hatte eine .jar-> jar_auto_fileAssoziation, die auf einen alten und ungültigen Pfad verweist .

Das Bearbeiten dieses Pfads hat ihn nicht behoben. Ich habe auch versucht, darauf zu zeigen jarfile, was auch nicht geholfen hat. Ich beschäftigte mich mit assocund ftypeein wenig, um zu sehen, ob dies Windows aufwecken könnte; Ich dachte, die Anti-Hijacking-Funktion hinderte Windows irgendwie daran, den aktualisierten Pfad anzuhören. Leider hat es nicht viel getan.

Irgendwann habe ich einfach den jar_auto_fileEintrag gelöscht . Das hat mich teilweise glücklich gemacht: Windows stellte schließlich fest, dass der Eintrag im Open WithMenü derjenige war, der einen Arbeitspfad hatte. (Die Auswahl des richtigen Pfads / der Datei in der Vergangenheit würde niemals korrekt bleiben.) Leider war das Doppelklicken immer noch fehlerhaft. Stellen Sie jedoch sicher, dass das Kontrollkästchen "Diese Art von Datei mit diesem Programm immer öffnen" aktiviert ist. Durch das Öffnen wurde die Verknüpfung schließlich so gut behoben, dass ein Doppelklick tatsächlich wieder funktionierte.

Es ist mir gelungen, * Java (TM) Platform SE binary * in der Liste * Open with * zu erhalten, indem die Pfade in den Registrierungseinträgen HKEY_CURRENT_USER und HKEY_LOCAL_MACHINE abgeglichen werden. Jetzt zeigen `.jar`-Dateien endlich Symbole, funktionieren aber nicht beim Doppelklick. dinomario10 vor 6 Jahren 0
** UPDATE: ** Ich habe `.jar` und` jar_auto_file`-Einträge von `HKEY_CURRENT_USER / Software / Classes` gelöscht und ** es hat funktioniert **! .jar-Dateien werden erneut mit einem Doppelklick geöffnet! dinomario10 vor 6 Jahren 0
1
bogdotro

Ich hatte auch das Problem. Die Lösung ist noch einfacher. Fügen Sie das fehlende -jarArgument hinzu.

Gehen Sie zu HKEY_CLASSES_ROOT \ jar_auto_file \ shell \ open \ command und setzen Sie den Standardwert auf:

"C:\Program Files\Java\[...]\java.exe" "-jar" "%1" 

Es fehlte nur die "-jar"Option.

Genießen!

0
ePandit

Ich habe alle oben genannten Schritte ausprobiert, um das Problem zu lösen, aber es hat nichts funktioniert. Ich hatte sowohl JDK als auch JRE installiert.

In meinem Fall wurde eine JAR-Datei durch Doppelklick geöffnet, während eine andere nicht geöffnet wurde. Ich habe diese Dateien untersucht, und der wahrscheinliche Grund war, dass das, was gerade geöffnet wurde, mit JAVA SE 6 erstellt wurde und die nicht geöffnete Datei mit JAVA SE 7 erstellt wurde. Die problematische JAR-Datei wurde jedoch über die Eingabeaufforderung (java -jar) ausgeführt myfile.jar).

Ich habe versucht, Rechtsklick -> Eigenschaften -> Zu javaw.exe zu wechseln, und zwar sowohl im Verzeichnis JDK \ bin als auch im Verzeichnis JRE \ bin.

Ich konnte das Problem endlich beheben, indem ich den javaw.exe-Pfad (von JDK \ bin zu JRE \ bin) im Registrierungs-Editor änderte.

Gehen Sie zu HKEY_CLASSES_ROOT \ jarfile \ shell \ open \ command, der Wert lautete

"C:\Program Files\Java\jdk-11.0.1\bin\javaw.exe" -jar "%1" %* 

Ich habe es geändert,

"C:\Program Files\Java\jre1.8.0_191\bin\javaw.exe" -jar "%1" %* 

und es hat funktioniert. Jetzt kann die Jar-Datei per Doppelklick geöffnet werden.