Ausführen der JAR-Datei unter Windows

228

Ich habe eine JAR-Datei namens helloworld.jar . Um es auszuführen, führe ich den folgenden Befehl in einem Befehlszeilenfenster aus:

java -jar helloworld.jar

Das funktioniert gut, aber wie führe ich es stattdessen mit einem Doppelklick aus? Muss ich Software installieren?

DonX
quelle
1
Befolgen Sie die hier beschriebenen Schritte: Ausführen eines Jar unter Vista mit einem Doppelklick
RealHowTo

Antworten:

123

Am einfachsten ist es wahrscheinlich, die Java Runtime Environment (JRE) zu aktualisieren oder neu zu installieren.

Oder dieses:

  • Öffnen Sie den Windows Explorer und wählen Sie unter "Extras" die Option "Ordneroptionen ...".
  • Klicken Sie auf die Registerkarte Dateitypen, scrollen Sie nach unten und wählen Sie JAR-Dateityp.
  • Klicken Sie auf die Schaltfläche Erweitert.
  • Wählen Sie im Dialogfeld Dateityp bearbeiten die Option Im Feld Aktionen öffnen aus und klicken Sie auf Bearbeiten ...
  • Klicken Sie auf die Schaltfläche Durchsuchen und navigieren Sie zu dem Speicherort des Java-Interpreters javaw.exe.
  • In der Anwendung, die zum Ausführen des Aktionsfelds verwendet wird, muss etwas Ähnliches angezeigt werden C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(Hinweis: Der Teil, der mit 'javaw' beginnt, muss genau so sein; der andere Teil des Pfadnamens kann je nach verwendeter Java-Version variieren ) Drücken Sie dann die OK-Tasten, bis alle Dialoge geschlossen sind.

Was von hier gestohlen wurde: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

Brian Kelly
quelle
13
Ich denke, der einfache Weg ist, mit der rechten Maustaste auf eine beliebige JAR-Datei zu klicken> mit zu öffnen und "Java-Laufzeitumgebung" zu wählen. :)
Kassem
Wenn ich dies tue, wird mir immer der Fehler "Java-Plattform SE-Binärdatei funktioniert nicht mehr" angezeigt. Kann mir jemand helfen, woran könnte das liegen?
Faizan
1
@Faizan - Ihr Problem klingt wie ein separates Problem. Ich sehe ein paar SO- und Google-Ergebnisse für "Java Platform SE Binary funktioniert nicht mehr". Ich würde die überprüfen.
Brian Kelly
26
Es gibt keine Registerkarte Dateitypen in Ordneroptionen in Win 7
Radu Simionescu
79

In Windows Vista oder Windows 7 wurde der manuelle Dateizuordnungseditor entfernt.

Am einfachsten ist es, Jarfix auszuführen , ein winziges, aber leistungsstarkes Freeware-Tool. Führen Sie es einfach aus und Ihre Java-Apps sind wieder da ... doppelklickbar.

Hendy Irawan
quelle
Vielen Dank für den Tipp, wenn es nur einen Weg gäbe, diese kleinen (un) "verwendbaren" neuen Boxen loszuwerden
LoG
55

Wenn Sie Ihre JAR-Datei verteilen und auf Windows-Computern anderer Benutzer ausführen können, können Sie an der Eingabeaufforderung eine einfache BAT-Datei wie diese erstellen:

java -jar MyJavaTool.jar

und platzieren Sie die .bat-Datei im selben Verzeichnis wie Ihre .jar-Datei.

Demorf
quelle
Aber wie wird die .bat ausgeführt? Wäre dies dieselbe Strategie, um die Java-Anwendung dazu zu bringen, auch eine Befehlszeilensitzung zu eröffnen?
Ungeheuer
1
Nein, Sie würden einfach die Fledermausdatei öffnen. Ich bin mir nicht sicher, ob ich deine Frage verstehe.
26

Wenn Sie eine JAR-Datei namens Example.jar haben, befolgen Sie diese Regeln:

  1. Öffne ein notepad.exe
  2. Schreiben : java -jar Example.jar
  3. Speichern Sie es mit der Erweiterung .bat
  4. Kopieren Sie es in das Verzeichnis, in dem sich die .jarDatei befindet
  5. Doppelklicken Sie darauf, um Ihre .jarDatei auszuführen
Pusu
quelle
4
1) Das würde auf dem Mac nicht funktionieren. oder Unix. 2) Es wird eine unnötige Datei erstellt. 3) Bessere Antworten wurden vor über 2 Jahren gegeben. 4) ..Und dieses Wort ist "du".
Andrew Thompson
Tolle Möglichkeit, ein Glas unter Windows auszuführen! Außerdem wird die Befehlszeileneingabe nicht ausgeblendet, sodass ich sehen konnte, warum mein Glas nicht so lief, wie ich es mir vorgestellt hatte. Danke dir.
Joe
15

Ein interessanter Nebeneffekt verursacht ein Problem beim Starten von ausführbaren JAR-Dateien an der Eingabeaufforderung.

Wenn Sie es versuchen (in einer Eingabeaufforderung):

jarfile.jar parameter

Keine Freude, denn dies wird wie folgt übersetzt (was nicht funktioniert):

javaw.exe -jar jarfile.jar parameter

Der folgende Befehl funktioniert jedoch:

java.exe -jar jarfile.jar parameter

Wenn Sie die Zuordnung im Dateimanager wie oben beschrieben ändern, um:

"C:\Program Files\Java\j2re1.4.2_04\bin\java.exe" -jar "%1" %*

Dann können Sie Folgendes eingeben:

jarfile.jar parameter

in der Eingabeaufforderung und es wird jetzt funktionieren!

BEARBEITEN: (Sie erhalten jedoch ein schwarzes Konsolenfenster, wenn Sie eine formularbasierte (nicht konsolenbasierte) Java-App ausführen. Dies ist also keine ideale Lösung.)

Wenn Sie diese JAR-Dateien durch Doppelklicken in Windows ausführen, werden keine Parameter übergeben, sodass Ihr Java-Code die Stapelüberlauf-Ausnahme behandeln und am Ende eine Funktion zum Drücken einer Taste enthalten muss. Andernfalls verschwindet das Fenster einfach.

Um einen Parameter in Windows zu übergeben, müssen Sie eine Verknüpfung zur JAR-Datei erstellen, die den Parameter in der Zielzeile enthält (klicken Sie mit der rechten Maustaste auf die Verknüpfung und wählen Sie Eigenschaften aus). Sie können dem JAR-Dateisymbol selbst keine Parameter hinzufügen Weg.

Hier gibt es keine einheitliche Lösung, aber Sie hätten das gleiche Problem mit jeder anderen Konsolenanwendung.

Es gibt eine Windows-Freeware-Anwendung namens "bat to exe", mit der Sie eine exe-Datei aus einer .bat-Datei mit der entsprechenden Befehlszeile erstellen können. Sie können die JAR-Datei mit dieser Anwendung auch in die Exe einbetten und sie nach Abschluss der Ausführung bereinigen. Dies ist möglicherweise eine elegantere Lösung.

Bob
quelle
11

Legen Sie zuerst den Pfad in cmd fest (Eingabeaufforderung):

set path="C:\Program Files\Java\jre6\bin"

Geben Sie dann ein

java -jar yourProgramname.jar 
suraj
quelle
9

In Windows XP * benötigen Sie nur 2 Shell- Befehle:

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

Verwenden Sie offensichtlich den richtigen Pfad für die JRE und einen beliebigen Namen anstelle von myjarfile.

So überprüfen Sie einfach die aktuellen Einstellungen:

   C:\>assoc .jar  
   C:\>ftype jarfile  

diesmal mit dem Wert, der vom ersten Befehl zurückgegeben wurde, falls vorhanden, anstelle von jarfile.

* nicht mit Windows 7 getestet

user85421
quelle
1
Ein anonymer Benutzer hat dies mit Windows 7 (JRE 7) getestet. Sie sagen, es funktioniert, wenn Sie cmd als Administrator ausführen.
Jeremy Stein
Beste Lösung in meinen Augen. Funktioniert bis Windows 10. Die Befehle ftype und assoc sollten in einem Eingabeaufforderungsfenster mit Administratorrechten ausgeführt werden.
SixDoubleFiveTreeTwoOne
7

Es gibt eine Möglichkeit, ohne dass der Benutzer Änderungen an seinem PC vornehmen muss. Mit Runtime.getRuntime.exec () können wir cmd.exe starten und darin Befehle ausführen. Daher kann sich das Java-Programm in der Eingabeaufforderung selbst ausführen, wenn der Benutzer auf die JAR-Datei klickt.

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}
dario111cro
quelle
6

Neben all den anderen Vorschlägen gibt es noch eine weitere Sache, die Sie berücksichtigen müssen. Ist Ihre helloworld.jar ein Konsolenprogramm? Wenn ja, dann glaube ich nicht, dass Sie es in eine doppelklickbare JAR-Datei schaffen können. Konsolenprogramme verwenden das reguläre Shell-Fenster cmd.exe für ihre Eingabe und Ausgabe. Normalerweise ist der JAR "Launcher" an javaw.exe gebunden, wodurch kein Befehls-Shell-Fenster erstellt wird.


quelle
4

In regedit öffnen HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Doppelklicken Sie links auf Standard und fügen Sie -jar zwischen dem java.exePfad und dem %1Argument " " hinzu.

grwww
quelle
Das war's. Vielen Dank. Alle anderen Dinge haben nicht geholfen.
Raedma
3

Sie möchten ein paar Dinge überprüfen; Wenn dies Ihre eigene JAR-Datei ist, stellen Sie sicher, dass Sie im Manifest eine Hauptklasse definiert haben. Da wir wissen, dass Sie es über die Befehlszeile ausführen können, müssen Sie auch eine Windows-Verknüpfung erstellen und die Eigenschaften ändern (Sie müssen sich umschauen, ich habe keinen Windows-Computer zum Anschauen), damit Der Befehl, den es beim Öffnen ausführt, ist der von Ihnen erwähnte Befehl java -jar.

Die andere Sache: Wenn etwas nicht verwirrt ist, sollte es trotzdem funktionieren; Überprüfen Sie, ob der Erweiterung .jar Java zugeordnet ist.

Charlie Martin
quelle
1

Leider ist dies nicht so einfach, da Microsoft in den letzten Windows-Editionen das erweiterte Dialogfeld für die Dateizuordnung entfernt hat. - Bei neueren Windows-Versionen dürfen Sie nur die Anwendung angeben, die zum Öffnen der JAR-Datei verwendet werden soll.

Das Beheben des Öffnens einer JAR-Datei unter Windows erfordert zwei Schritte.

  1. Öffnen Sie die Systemsteuerung und wählen Sie "Standardprogramme -> Zuordnungen festlegen". Suchen Sie dort die Erweiterung .jar ( ausführbare JAR-Datei ) und wählen Sie Java als Standardprogramm aus, um diese Erweiterung zu öffnen. Es wird wahrscheinlich als " Java Platform (SE) " aufgeführt. Eine schnellere Alternative ist vielleicht das einfache Klicken mit der rechten Maustaste auf eine JAR-Datei und das Ändern des zugehörigen Programms durch Klicken auf die Schaltfläche "Ändern ...".

  2. Öffnen Sie nun den Regedit und öffnen Sie den HKEY_CLASSES_ROOT\jarfile\shell\open\commandSchlüssel. Zum Glück können wir dort Parameter für den (Default)Wert angeben . Auf meinem Windows-System sieht es so aus: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*In den meisten Fällen handelt es sich jedoch um die folgende Zeichenfolge:C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

ANMERKUNGEN:

  • Verwenden Sie es java.exedort nicht, da es das Shell-Fenster öffnet.
  • Das in diesem Thread erwähnte Jarfix- Tool führt höchstwahrscheinlich nur die Registrierungsänderung für Sie durch. Ich bevorzuge die manuelle Registrierungsänderungsmethode, da dies impliziert, dass der Systemadministrator die Registrierungsänderung auf alle Arbeitsstationen im Netzwerk "pushen" kann.
DejanLekic
quelle
1

Ich hatte das gleiche Problem in Windows 10. Ich reparierte es mit righ-Klick auf den „ helloworld.jar “ und gehen Eigenschaften und klicken Sie auf Änderung Schaltfläche unter „Öffnet mit:“ und wählen Sie „ Suchen Sie nach einer anderen App auf diesem PC “. Gehen Sie im Dialogfeld " Öffnen mit ... " zu Ihrem Java-Ordner auf Ihrem PC und öffnen Sie den entsprechenden JDK-Ordner. Öffnen Sie dann den Bin- Ordner und wählen Sie dort " javaw.exe " aus. Dann öffnet sich das nächste Mal Ihre " helloworld.jar " auf normale Weise.

Übliches Beispiel für einen Java-Speicherort: " C: \ Programme (x86) \ Java \ jdk1.8.0_111 \ bin ".

Samintha Kaveesh
quelle
1

Eine andere Möglichkeit, JAR-Dateien mit einem Klick / Doppelklick auszuführen, besteht darin, dem Dateinamen "-jar" voranzustellen. Beispielsweise würden Sie die Datei MyJar.jarin umbenennen -jar MyJar.jar.

Sie müssen natürlich die .classDateien zugeordnet haben java.exe. Dies funktioniert möglicherweise nicht in allen Fällen, hat aber bei mir meistens funktioniert.

user4343596
quelle
1

PreScript : Wenn Ihre Eingabeaufforderung sofort angezeigt und ausgeblendet wird, wird Ihr Programm ausgeführt und automatisch geschlossen. Versuchen Sie, am Ende einen Scanner zum Beenden einzusetzen, damit Ihre Eingabeaufforderung vor dem Beenden auf Eingaben wartet. (Oder vielleicht Verzögerung verwenden)

War in der gleichen Situation, in der das Ausführen von .jar von cmd aus einwandfrei funktionierte, aber ein Doppelklick nichts brachte.

Lösung: Öffnen Sie einen beliebigen Texteditor und schreiben Sie die Befehlszeile: java -jar Example.jar Speichern Sie die Datei als .bat-Datei. Führen Sie diese Bat-Datei aus, um die erforderliche Ausgabe zu erhalten.

Mit einem einfachen GUI-Tool wie Bat To Exe Converter können Sie diese Bat-Datei in eine Exe-Datei konvertieren.

Jetzt können Sie Ihre .jar-Datei als Distribution in einer EXE-Datei freigeben, die jeder verwenden kann. Stellen Sie nur sicher, dass Sie alle Dateien zusammenhalten. (Insbesondere die .jar- und .bat-Datei verursachen, dass .bat nur eine cmd-Eingabeaufforderung ist.) (Wie es sich logisch anfühlt)

Ich bin ziemlich neu in der Entwicklung und lerne viel. Bitte entschuldigen Sie eventuelle Fehler. Vorschläge sind willkommen.

Manthan_Admane
quelle
1

verwenden .batDatei:

Fügen Sie Ihren Befehl in eine .bat-Datei ein. Hier wird Ihr Befehl sein java -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

Speichern Sie es und doppelklicken Sie auf bat-Datei, um Ihr Glas auszuführen. Ihr Dateiname wird so etwas wie seinfileName.bat

Bandham Manikanta
quelle
0

Wenn Sie Eclipse zum Erstellen Ihrer Java-Dateien verwenden, können Sie diese als ausführbare JAR-Datei exportieren. Ich habe dies mit meinen Programmen gemacht und ich kann einfach auf das Glas klicken und es wird einfach so laufen. Dies funktioniert sowohl in Windows als auch in OS X.


quelle
Laut dieser Frage
doubleDown
0

Start.bat war das einzige, was für mich funktioniert hat.

Öffnen Sie ein Textdokument und geben Sie ein. java -jar was auch immer deins heißt .jar

Speichern Sie als start.bat im selben Ordner wie die .jar-Datei, die Sie ausführen möchten. und dann die ausführen. Schläger

freeloaderzful
quelle
0

Wenn Sie die JAR-Datei durch Doppelklicken ausführen müssen, müssen Sie sie als " Runnable JAR " erstellen . Sie können dies einfach mit Ihrer IDE tun.

Wenn Sie Eclipse verwenden, gehen Sie folgendermaßen vor:

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

Weitere Informationen finden Sie auf der Eclipse-Hilfeseite: LINK

Nomesh DeSilva
quelle
0

Es gibt viele Methoden zum Ausführen einer JAR-Datei unter Windows. Einer von ihnen verwendet die Eingabeaufforderung.

Schritte :

  1. Eingabeaufforderung öffnen (Als Administrator ausführen)
  2. Schreiben Sie nun den Befehl "cd \" für das Stammverzeichnis
  3. Geben Sie "java jar filename.jar" ein. Hinweis: Sie können auch Apps von Drittanbietern wie WinRAR, jarfix usw. verwenden.
irisrei08
quelle
0

.batDatei erstellen :

start javaw -jar %*

Wählen Sie die App-Standardeinstellung, um sie .jarmit dieser .batDatei zu öffnen .

Es wird geschlossen, cmdwenn Sie Ihre .jarDatei starten .

hong4rc
quelle
0

Zum Kompilieren:

javac  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java

Zum Laufen:

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
anil kumar meena
quelle
0

Eigentlich war ich auch mit diesem Problem konfrontiert. Ich bin damit umgegangen, indem ich einen .bat-Runner für meine JAR-Datei erstellt habe.

Hier ist der Code:

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



Führen Sie dann in Ihrer Hauptanwendungsklasse Folgendes aus:

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


Bitte beachte, dass

  1. Dieser Code (mein Code) funktioniert nur mit einer JAR-Datei, nicht mit einer Klassendatei.

  2. Die JAR-Datei muss denselben Namen haben wie der String "jarName" ist die Hauptklasse

ZOLDIK
quelle