Wie starte ich eine JAR-Datei, indem ich auf Windows 7 64-Bit doppelklicke?

77

Das Ausführen einer JAR-Datei in einer Befehlszeile funktioniert einwandfrei, aber ich kann keine JAR-Datei ausführen, indem ich auf Windows 7 (64) doppelklicke. Es scheint, dass nach dem Doppelklick nichts passiert.

Ich habe den ftypeHinweis ausprobiert , kein Erfolg:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

Ich habe das JDK 7 64-Bit neu installiert, kein Erfolg.

Irgendeine Idee?

Codierer
quelle
1
Es hört sich so an, als ob Sie alles richtig machen. Bitte werfen Sie einen Blick auf meinen Link unten. Und bitte stellen Sie sicher, dass 1) "c: \ Programme \ java \ jre7 \ bin \ javaw.exe" der richtige Pfad ist und 2) dieser Pfad auch unter "HKLM, Software, Java" in Ihrer Registrierung korrekt definiert ist.
Pauls4
Der Befehl ftype muss auch als Administrator ausgeführt werden.
Brian Minton
Mögliches Duplikat der Running Jar-Datei in Windows
Suma
Die eigentliche Antwort ist, dass Sie so etwas wie packr oder one-jar verwenden müssen , um Ihren Code für den Benutzer zu extrahieren und auszuführen, oder eine JNLP-Datei erstellen müssen, die Java jetzt ordnungsgemäß verknüpft.
EntangledLoops
Nachdem ich das Problem selbst hatte, erstellte ich eine Anwendung, um genau dies zu tun. Es findet die Java-Installation, führt die entsprechende ausführbare Datei (JavaW.exe) aus und leitet sie an die JAR-Datei weiter. 'Wirklich einfache Codierung, aber auch sehr praktisch. Der Link kann in meinem Kommentar unten gefunden werden. =) stackoverflow.com/questions/8511063/…
BoyBlueSky

Antworten:

38

Was ist unter Rechtsklick-> Öffnen mit aufgeführt? Ist ein anderes Programm als Standardprogramm aufgeführt? Ist eine Java-Laufzeit aufgelistet? Wenn eine Java-Laufzeit aufgelistet ist, können Sie sie öffnen und zum Standardprogramm für die Ausführung machen.

dh

Klicken Sie mit der rechten Maustaste -> Eigenschaften -> Ändern -> C: \ Programme \ Java \ jre7 \ bin \ javaw.exe
Stratwine
quelle
38
Dies scheint in Java 8 nicht zu funktionieren. Bisher war mein einziger Erfolg, von der Kommandozeile aus zu laufen:java.exe -jar myFile.jar
Assimilater
10
Gleiches hier - ein Doppelklick auf eine mit javaw verknüpfte Datei führt zu nichts. Manuelles Ausführen auf der Befehlszeile funktioniert. Ich denke, der zugehörige wird nicht in das -jar?
Nick.McDermaid
Die Doppelklickfunktion ist mithilfe eines externen Skripts möglich - entweder einer BATch-Datei oder einer EXEcutable. Ich habe eine solche ausführbare Datei für die Verwendung auf meinem Computer kompiliert, da Windows 10 anscheinend auch die zugehörigen JAR-Dateien vernachlässigt hat. Siehe den folgenden Kommentar: stackoverflow.com/questions/8511063/…
BoyBlueSky
Sie sagen also, es ist unmöglich, einfach auf eine JAR zu doppelklicken, damit sie funktioniert? ohne BATch-Datei oder EXE?
White_King
41

Wenn Sie zuvor mit der rechten Maustaste geklickt und mit \ path \ to \ your \ javaw.exe geöffnet haben, müssen Sie den folgenden Registrierungsschlüssel entfernen .

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar]

Dann renne

C:\>assoc .jar=jarfile
C:\>ftype jarfile="C:\path\to\your\javaw.exe" -jar "%1" %*
AshUK
quelle
3
Ich habe ftype jarfile = "C: \ path \ to \ your \ java.exe" -jar "% 1"% * verwendet, damit es funktioniert.
Daimi
@ Shifatullah der einzige Unterschied afaik ist, dass Java mit einer Konsole verbunden ist, während Javaw nicht ist
17slim
16

Für Windows 7:

  1. Starten Sie "Systemsteuerung"
  2. Klicken Sie auf "Standardprogramme".
  3. Klicken Sie auf "Dateityp oder Protokoll einem bestimmten Programm zuordnen".
  4. Doppelklick .jar
  5. Durchsuche C:\Program Files\Java\jre7\bin\javaw.exe
  6. Klicken Sie auf die Schaltfläche Öffnen
  7. Klicken Sie auf die Schaltfläche OK
unpopulär
quelle
4
Für Windows 7 oder 8 64-Bit: Schritt 5: C: \ Programme (x86) \ Java \ jre7 \ bin \ javaw.exe
Math
2
Das mag dumm klingen, aber was könnte das Problem sein, wenn ".jar" nicht in der Liste erscheint (Schritt 4)?
Vaughany
@ Vaughany - Siehe meine Antwort.
P.Brian.Mackey
7
das funktioniert bei mir nicht Ich verwende Windows 7 64 und habe gerade java jdk1.7.0_45 neu installiert. Wenn ich eine Eingabeaufforderung öffne und java -jar filename.jar ausführe, läuft es einwandfrei, aber das Zuordnen der JAR-Datei zu Javaw, Java oder Javaws schlägt ohne Fehlermeldung fehl.
James
Nachdem ich das Problem selbst hatte, erstellte ich eine Anwendung, um genau dies zu tun. Es findet die Java-Installation, führt die entsprechende ausführbare Datei (JavaW.exe) aus und leitet sie an die JAR-Datei weiter. 'Wirklich einfache Codierung, aber auch sehr praktisch. Der Link kann in meinem Kommentar unten gefunden werden. =) stackoverflow.com/questions/8511063/…
BoyBlueSky
14

Wenn Sie die Antwort von unbeliebt versuchen :

Für Windows 7:

  1. Starten Sie "Systemsteuerung"
  2. Klicken Sie auf "Standardprogramme".
  3. Klicken Sie auf "Dateityp oder Protokoll einem bestimmten Programm zuordnen".
  4. Doppelklick .jar
  5. Durchsuche C:\Program Files\Java\jre7\bin\javaw.exe
  6. Klicken Sie auf die Schaltfläche Öffnen
  7. Klicken Sie auf die Schaltfläche OK

Und JAR-Dateien lassen sich immer noch nicht öffnen (in meinem Fall war es so, als hätte ich nie doppelt geklickt):
Öffnen Sie die Eingabeaufforderung (um sicherzugehen , wenn die Administratorrechte aktiviert sind) und geben Sie die folgenden Befehle ein:

java -version Dies sollte eine Version zurückgeben, damit Sie sicher davon ausgehen können, dass Java installiert ist.

Dann renne

java -jar "PATHTOFILE\FILENAME.JAR"

Lesen Sie die generierte Ausgabe durch. Möglicherweise wird eine Fehlermeldung angezeigt.

P.Brian.Mackey
quelle
und was soll ich für XP tun?
in meinem Fall ändert es nichts, gehen Sie nur zurück zu system32
Rayan Suryadikara
11

Ich habe alle oben genannten Schritte versucht, um das Problem zu beheben, aber nichts hat funktioniert. Ich hatte sowohl JDK als auch JRE installiert.

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

Ich habe versucht, mit der rechten Maustaste -> Eigenschaften -> In javaw.exe zu wechseln, sowohl im Verzeichnis JDK \ bin als auch im Verzeichnis JRE \ bin.

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

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

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

Ich habe es geändert in,

"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.

ePandit
quelle
2
Dies sollte die akzeptierte Antwort sein. Keine der anderen Antworten hat in Windows 10 für mich funktioniert. Sie funktionieren jedoch möglicherweise in Windows 7.
Jose Manuel Ferreira Benavides
1
Das hat bei mir funktioniert. Keine der anderen Methoden funktionierte. Dieser Schlüssel in der Registrierung hatte eine alte Version von Java, die das Öffnen des Jar durch Doppelklicken auf die Datei verhinderte.
Anacron
1
Meine Zuordnung in Windows 10 war HKEY_CLASSES_ROOT \ .jar_auto_file \ shell \ open \ Befehl und verwendet"C:\dev\openjdk11\bin\javaw.exe" -jar "%1"
bjmi
6

Ich hatte das gleiche Problem mit .jar-Dateien, die nicht mit einem Doppelklick geöffnet wurden. Es stellte sich heraus, dass ich zwei Versionen von Java installiert hatte (Java 6 und 7). Durch die Deinstallation von Java 6 über die Systemsteuerung-> Programm deinstallieren konnten .jar-Dateien schließlich per Doppelklick geöffnet werden, ohne das Befehlsfenster zu verwenden.

Rachael
quelle
Das ist absolut richtig, es ist mir passiert und nachdem ich Ihre Lösung gelesen habe, hat es wieder funktioniert
Yahya
2

Das ist mein Weg:

  1. Erstellen Sie die Datei bat (Beispiel openJar.bat).

    @echo off
    start javaw -jar "%1" %*
    exit
    
  2. Schneiden Sie es aus und fügen Sie es in C: \ Programme \ Java \\ bin ein (dieser Schritt ist nicht erforderlich, aber Sie sollten es tun).

  3. Klicken Sie mit der rechten Maustaste auf JAR-Datei> Eigenschaften> Wählen Sie Öffnen mit (Schaltfläche Ändern) und wählen Sie Ihre Datei bat.
  4. Doppelklicken Sie auf Ihre JAR-Datei, um sie zu testen.
hong4rc
quelle
2

Ich hatte das gleiche Problem: Wenn ich auf eine ausführbare JAR-Datei doppelklicke und meine Java-Anwendung nicht startet.

Also habe ich versucht, auch den Registrierungsschlüssel manuell zu ändern, aber es hat mir nicht geholfen. Es wurde versucht, JDK neuer / älter ohne Ergebnis neu zu installieren. (Ich habe mehrere Versionen von Java)

Und ich habe es nur mit dem Jarfix-Programm gelöst. Jarfix hat das .jar-Zuordnungsproblem auf dem Windows-System automatisch behoben. (Check regedit: PC\HKEY_CLASSES_ROOT\jarfile\shell\open\command)

Was sagt Johann Nepomuk Löfflmann:

Die Hauptursache für das oben genannte Problem ist, dass ein Programm die .jar-Zuordnung gestohlen hat. Wenn Sie die Java-Laufzeitumgebung zum ersten Mal installiert haben, wird der Dateityp "jar" javaw.exe korrekt zugewiesen. "jar" ist eine Abkürzung für "java archive" und javaw.exe ist das richtige Programm zum Ausführen einer .jar. Unter Windows kann jedes Programm jedoch jederzeit einen Dateityp stehlen, selbst wenn er bereits einem Programm zugeordnet ist. Viele Zip / Unzip-Programme bevorzugen dies, da ein JAR im ZIP-Format gespeichert ist. Wenn Sie auf eine JAR-Datei doppelklicken, öffnet Ihr Pack-Programm die Datei, anstatt dass Javaw das Programm ausführt, da Ihr Pack-Programm die Metainformationen ignoriert, die auch in einer JAR-Datei gespeichert sind. In der Oracle-Fehlerdatenbank befindet sich der Bericht 4912211 mit niedriger Priorität. "

Sie können auch die Dateiverbindung mit .jar verpassen, wenn Sie ein kostenloses OpenJDK ohne Installationsprogramm verwenden.

Hinweis: Mein Betriebssystem ist Windows 10, aber die Logik ist für 7, 8 usw. dieselbe.

Hilfreiche Links:
https://windowsreport.com/jar-files-not-opening-windows-10/ https://johann.loefflmann.net/en/software/jarfix/index.html

invzbl3
quelle
1

Ihr Problem könnte auch in Ihrer Java-Codeeinstellung liegen. Ich meine, wenn Ihr Programm die Hauptklasse / Hauptdatei ( Einstiegspunkt ) nicht realisieren konnte , wird das Programm / .jar (speziell auf IDEs basierende Anwendung) nicht gestartet. So lösen Sie das auf einer IDE:

  • Klicken Sie mit der rechten Maustaste auf das Projekt> Eigenschaften> Ausführen> Hauptklasse durchsuchen> OK.
  • Reinigen und neu aufbauen

Versuchen Sie es jetzt. Ich hoffe es hilft

mustangDC
quelle
1

Ich hatte das Problem, dass Windows die Ausführung blockierte (Windows 10 Pro). Klicken Sie mit der rechten Maustaste auf das Symbol> Eigenschaften> in der unteren rechten Ecke. Dort wird möglicherweise angezeigt, dass "Windows die Funktionalität blockiert hat ...". Daneben befindet sich ein Kontrollkästchen mit der Bezeichnung "Entsperren"> Deaktivieren Sie das Kontrollkästchen> Anwenden> zu blockieren geht weg und dann kannst du es laufen lassen.

CodeMonkey
quelle
1

Ändern Sie die Standardanwendung für JAR-Dateien von java.exe in javaw.exe aus Ihrem Ordner JAVA_HOME / bin.

Dies liegt daran, dass java.exe nur eine Konsolenanwendung ist, die JAR-Datei jedoch eine vom Fenster gerenderte Ausführung benötigt. Da javaw.exe eine Fensteranwendung ist, wird sie für die Ausführung von JAR-Dateien bevorzugt.

Eine Alternative dazu ist, dass Sie in gewissem Umfang die Eingabeaufforderung verwenden können, um Ihre JAR-Dateien auszuführen, indem Sie einfach das Java- Schlüsselwort mit -jar attrib verwenden.

Darecoder
quelle
1

Musste das versuchen:

  1. Öffnen Sie die Eingabeaufforderung als Administrator
  2. Wechseln Sie mit dem cdBefehl in den Dateiordner
  3. Art java.exe -jar *filename*.jar
  4. Drücken Sie Enter

Die App sollte gleich danach erscheinen.

Ange Kouakou
quelle
0

http://www.wikihow.com/Run-a-.Jar-Java-File

  1. Angenommen, Sie haben die Java JRE und / oder das Java SDK geladen
  2. Um Assoziationen herzustellen, gehen Sie zu " Arbeitsplatz " und klicken Sie auf eines Ihrer Laufwerke (C: zum Beispiel).
  3. Wenn es angezeigt wird, wählen Sie "Extras" »» "Ordneroptionen" (oder Eigenschaften ... es befindet sich je nach Windows-Version an verschiedenen Stellen).
  4. Öffnen Sie den Windows Explorer (öffnen Sie einfach einen beliebigen Ordner), um das Fenster "Extras" -> "Ordneroptionen" aufzurufen.
  5. Wenn Sie das Fenster "Ordneroptionen" erhalten, klicken Sie auf die Registerkarte "Dateitypen". Sie sollten in der Lage sein, JAR-Dateien entweder zu bearbeiten oder hinzuzufügen (.jar Erweiterung)
  6. Ändern Sie das Programm zum Öffnen von JAR-Dateien. Wechseln Sie im Dateiauswahlfenster zu dem Ordner, in dem die JRE installiert ist ( C:/Program Files/Java/...markieren Sie "Immer mit öffnen" und wählen Sie die javaw.exeDatei aus.
paulsm4
quelle
0

Installieren der neuesten JRE hat dies für mich behoben.

(Obwohl ich zuvor ein JDK und JRE (s) installiert hatte.)

Aaron Thoma
quelle
0

Dies ist kein Problem mit der Dateizuordnung, da Sie die Anwendung über die Befehlszeile korrekt starten können.

Das Problem besteht darin, dass beim Doppelklicken auf eine zugeordnete Datei die Anwendung gestartet und mit dem Dateipfad als Basisausführungspfad ausgeführt wird. Jeder relative Pfad wird aus dem Dateipfad berechnet und alles, was Sie zu laden versuchen, wird wahrscheinlich fehlen.

Es passiert nichts, selbst wenn Sie Ihren gesamten Einstiegspunktcode mit try / catch (Ausnahme) umgeben, weil Java Throwables und keine Ausnahmen auslöst: Um dies in Ihrem Java-Einstiegspunkt zu beheben, umgeben Sie den Inhalt der Hauptmethode mit einem try / catch ( Throwable) (Basisklasse für Exception and Error) und Debug.

Mauro Sampietro
quelle
0

Ich hatte das gleiche Problem und suchte im Internet nach einer Lösung. Keiner der Vorschläge wurde nicht durch Doppelklicken auf geöffnet .jar Datei .

In meinem Fall ist der Grund, dass auf meinem Computer mehrere JDK- und JRE-Versionen installiert sind. Da ich ein Softwareentwickler bin, der mit verschiedenen Versionen für verschiedene Clients arbeitet, muss ich auf meinem PC (Windows 10 Pro) mehrere JDKs verwenden. Also ich möchte nicht die Systemvariablen ändern (dh JAVA_HOME, JRE_HOMEoderPATH ), stattdessen verwende ich Eingabeaufforderung java in Benutzerprozess ausgeführt , wenn ich eine andere Version verwenden wollte.

Bei der Installation von JDK wird die .jarDateizuordnung mit der neuesten Version registriert, die wir auf dem PC installiert haben. Wenn Sie mit der rechten Maustaste auf das JAR-Symbol klicken und Eigenschaften auswählen, wird angezeigt, dass die Datei mit "Java (TM) Platform SE Binary" geöffnet wird. Wenn wir uns den Registrierungsschlüssel ansehen:HKEY_CLASSES_ROOT\jarfile\shell\open\command , wird auf die neueste JDK-Version verwiesen.

Es ist keine gute Idee (manchmal ärgerlich), den Registrierungsschlüssel jedes Mal zu ändern, wenn ich einen App-Build aus einer anderen Version ausführen möchte.

In meiner Situation ist es also unmöglich, einfach auf die .jarDatei zu doppelklicken, um sie auszuführen. Stattdessen habe ich selbst eine Lösung gefunden.

Szenario:

Auf dem PC sind mehrere JDKs (1.7, 1.8, 9.0, 10.0, 11.0 und 12.0) installiert, sodass zuletzt 12.0 installiert wurde.

Problem

Sie möchten auf eine ausführbare Datei doppelklicken, .jardie mit JDK 1.8 entwickelt wurde und nicht funktioniert hat

Dies ist meine Workaround-Lösung:

  1. Erstellen Sie eine Verknüpfung für die .jarDatei, die Sie öffnen möchten.
  2. Klicken Sie mit der rechten Maustaste auf das Verknüpfungssymbol und wählen Sie Eigenschaften -> Registerkarte Verknüpfung
  3. Ändern Sie den Text im Ziel (zum Beispiel "D:\Dev\JavaApp1.8.jar") in

    " C:\Program Files\Java\jdk1.8.0\bin\javaw.exe" -jar " D:\Dev\JavaApp1.8.jar"

  4. Klicken Sie dann auf OK. Doppelklicken Sie auf die Verknüpfung.

Es sollte jetzt die App öffnen.

Dush
quelle