Rudi: Öffnen einer Datei *.jar

Hi, ich habe eine jar-Datei, die ich nicht öffnen konnte. Jetzt habe ich erfahern, das diese mit JAVA öffnen soll. Ich habe daher das Java Development Kit installiert. Leider wird jetzt meine Datei immer noch nicht geöffnet. Also habe ich über "öffnen mit" der Datei das JAVA-Programm zuordnen wollen. Allerdings gibt es in dem Java Ordner sehr viele exe-Dateien. Habe es dann u.a. mit java.exe probiert. Da klappt aber nur kurz ein Fenster auf und das wars. Mit welchem Programm muss ich die jar-Datei öffnen?

  1. Hallo Rudi,

    ich habe eine jar-Datei, die ich nicht öffnen konnte.
    Jetzt habe ich erfahern, das diese mit JAVA öffnen soll.

    ja, Dateien mit der Endung .jar sind Java Archives, also zu Java-Bytecode vorcompilierte Java-Programme.

    Ich habe daher das Java Development Kit installiert.

    Eine Java Runtime (JVM) hätte genügt, solange du nicht selbst in Java programmieren willst. Die komplette Entwicklungsumgebung sollte natürlich auch helfen, ist aber totaler Overkill.

    Also habe ich über "öffnen mit" der Datei das JAVA-Programm zuordnen wollen. Allerdings gibt es in dem Java Ordner sehr viele exe-Dateien.

    Ich kann dir nur sagen, wie das bei mir unter Linux funktioniert und dann vermuten, dass es unter Windows ähnlich läuft, weil Java ja von der Idee her plattformunabhängig funktionieren soll.

    Hier werden Java-Programme mit dem Kommando

    java -jar <javaprog.jar>
    

    aufgerufen.

    Habe es dann u.a. mit java.exe probiert. Da klappt aber nur kurz ein Fenster auf und das wars.

    Ist das vielleicht nur ein Kommandozeilen-Programm ohne GUI? Versuch's mal analog zu meinem Beispiel von der Kommandozeile aus. Dann kannst du wenigstens die Ausgabe lesen, auch wenn's vielleicht nur eine Fehlermeldung ist.

    Btw, warum schreibst du Java in Großbuchstaben?

    Live long and pros healthy,
     Martin

    --
    Home is where my beer is.
    1. Tach!

      Eine Java Runtime (JVM) hätte genügt, solange du nicht selbst in Java programmieren willst. Die komplette Entwicklungsumgebung sollte natürlich auch helfen, ist aber totaler Overkill.

      Ab Java 11 gibt es keine separat gelieferte JRE mehr, nur noch das JDK. Daraus kann man sich dann kleinere Builds bauen, wenn man will. Wenn man nur die JRE installieren will, muss man auf Java 8 zurückgehen.

      dedlfix.

    2. Wenn ich die jar-Datei entpacke, so ergibt sich folgendes: Ergebnis des z-Zip

      Ich habe jetzt, wie Du vorgeschlagen hast, den Aufruf über die Kommandozeile durchgeführt. Ergebnis ist die gewünschte Anwendung in grafischer Oberfläche. Damit komme ich zunächst weiter. Ich habe das Java (Runtime allein geht nicht) neu installiert, trotzdem klappt der direkte Start nicht. Bei meinem Kollegen klappt es allerdings. durch direkten Doppelklick auf die jar-Datei. Was kann dann bei mir verstellt sein?

      1. Hallo Rudi,

        Wenn ich die jar-Datei entpacke, so ergibt sich folgendes: Ergebnis des z-Zip

        das hilft uns zwar nicht wirklich, aber es sieht zumindest mal plausibel aus.

        Ich habe jetzt, wie Du vorgeschlagen hast, den Aufruf über die Kommandozeile durchgeführt.
        Ergebnis ist die gewünschte Anwendung in grafischer Oberfläche.
        Damit komme ich zunächst weiter.

        Prima, das ist ja schon mal ein Fortschritt.

        Ich habe das Java (Runtime allein geht nicht) neu installiert, trotzdem klappt der direkte Start nicht.
        Bei meinem Kollegen klappt es allerdings. durch direkten Doppelklick auf die jar-Datei.
        Was kann dann bei mir verstellt sein?

        Gibt es im Java-Installer eine Option wie *Dateitypen zuordnen" oder "Dateizuordnungen reparieren" (oder etwas Entsprechendes in Englisch)? Eine Checkbox, die man schon bei der Installation hätte aktivieren sollen?

        Ich habe im Moment kein Windows in Reichweite, aber morgen könnte ich dir eventuell zeigen, wie man's "zu Fuß" richtig zuordnet. Ich bin mir jetzt nicht ganz sicher, ob auf meinem Arbeitsrechner überhaupt Java installiert ist (Python, LaTeX, Veusz und sowas schon); wenn nicht, müssen wir ein bisschen abstrahieren.

        Vielleicht kommt mir ja bis dahin auch jemand anderes zuvor.

        Live long and pros healthy,
         Martin

        --
        Home is where my beer is.
        1. Moin Rudi,

          Ich habe im Moment kein Windows in Reichweite, aber morgen könnte ich dir eventuell zeigen, wie man's "zu Fuß" richtig zuordnet. Ich bin mir jetzt nicht ganz sicher, ob auf meinem Arbeitsrechner überhaupt Java installiert ist (Python, LaTeX, Veusz und sowas schon); wenn nicht, müssen wir ein bisschen abstrahieren.

          kopiere mal folgenden Schnipsel in einen Texteditor:

          Windows Registry Editor Version 5.00
          
          [HKEY_CLASSES_ROOT\.jar]
          @="jarfile"
          
          [HKEY_CLASSES_ROOT\jarfile\shell\open\command]
          @="\"C:\\Program Files (x86)\\Java\\jre1.8.0_101\\bin\\javaw.exe\" -jar \"%1\" %*"
          

          Den Pfad zur javaw.exe in der letzten Zeile musst du vermutlich an die Gegebenheiten auf deinem Rechner anpassen; beachte dabei, dass der Backslash als Verzeichnistrenner hier doppelt notiert werden muss (C-typisches Escaping).

          Dann speicherst du das als Datei mit der Endung .reg, die du dann mit einem Rechtsklick in die Windows-Registry importieren kannst.

          Achtung: Das erfordert Administrator-Rechte auf dem betroffenen PC!

          Falls dir der Registry-Editor vertraut ist, kannst du auch die oben genannten Schlüssel "zu Fuß" eintragen. Aber das ist nicht jedermanns Sache.

          Live long and pros healthy,
           Martin

          --
          Home is where my beer is.
          1. Hallo Martin,

            ja, so sieht's auf meinem PC auch aus, weil ich die Update-Aufforderungen immer wegklicke.

            Was Du da zeigst, ist die 32-bit Version von Java 8, Update 261 101.

            Tatsächlich ist der letzte Java 8 Update aber die Version 261, und eigentlich ist Java 8 tot; Oracle möchte, dass wir Java 11 verwenden.

            Welches JRE installiert ist, findet man unter

            HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

            und

            HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment

            heraus. Aber man sollte den jarfile-Eintrag nur im Notfall manuell machen. Der muss vom JRE Installer gesetzt werden. Es kann natürlich auch sein, dass das JDK ihn nicht setzt, dann muss man es tun und bei jedem Update dranbleiben.

            Wobei ich Rudi da nicht verstehe. Zur Ausführung einer Java Application muss das JRE reichen; der Satz „Runtime allein geht nicht“ ist zu vage, um zu verstehen, was passiert. Und wer das JDK installieren kann, sollte immer auch das JRE installieren können.

            Sorry, finde gerade erst Dedlfix' Beitrag. JRE11 gibt's also nicht mehr. Wusste ich nicht; ich bin kein Java Entwickler. Aber das bedeutet dann auch, dass man nicht irgendwelche JARs zum Ausführen bekommt, sondern eine Application aus Jar + Runtime.

            Es könnte hilfreich sein, in die META-INF/MANIFEST.MF Datei im .jar hinzuschauen, da steht eine Created-By Zeile mit der Java Version, die das JAR erzeugt hat.

            Rolf

            --
            sumpsi - posui - obstruxi
            1. Tach!

              Was Du da zeigst, ist die 32-bit Version von Java 8, Update 261.

              101 wolltest du statt 261 sicherlich schreiben.

              Tatsächlich ist der letzte Java 8 Update aber die Version 261, und eigentlich ist Java 8 tot; Oracle möchte, dass wir Java 11 verwenden.

              Sie ist alt, aber noch nicht tot. Der Support für nicht-kommerzielle Nutzung geht noch bis Dezember 2020 und der erweiterte sogar bis 2030. Außerdem gibt es noch so einige Programme, die sich hoher Beliebtheit erfreuen und die nicht mit Versionen ab 9 aufwärts klarkommen.

              dedlfix.

              1. Hallo dedlfix,

                nein, 261. Gerade den Update gemacht. Wo hast Du die 101 her?

                Rolf

                --
                sumpsi - posui - obstruxi
                1. Hi,

                  nein, 261. Gerade den Update gemacht. Wo hast Du die 101 her?

                  Aus dem Posting von Martin, auf das geantwortet wurde - dort steht im Registry-Eintrag _101

                  cu,
                  Andreas a/k/a MudGuard

                  1. Hallo MudGuard,

                    oops 😳

                    ich habe hier mal einiges editiert...

                    Rolf

                    --
                    sumpsi - posui - obstruxi
            2. Hallo Rolf,

              ja, so sieht's auf meinem PC auch aus, weil ich die Update-Aufforderungen immer wegklicke.

              😉 die Möglichkeit habe ich meist gar nicht; wenn Updates oder neue Software von unserer IT-Abteilung verordnet werden, dann kann ich das höchstens ein paar Tage hinauszögern. Irgendwann erfolgt die Installation dann zwangsweise, ob ich will oder nicht.

              Ich sehe es hier auf einem Büro-PC beim Arbeitgeber auch nicht als meine Pflicht, für Updates zu sorgen. Das tu ich bei der Software, die ich über die "Pflichtausstattung" hinaus selbst installiert habe (das darf ich nämlich immerhin), für den Rest sind die IT-Kollegen verantwortlich.

              Was Du da zeigst, ist die 32-bit Version von Java 8, Update 261.

              Du meinst Update 101?

              Tatsächlich ist der letzte Java 8 Update aber die Version 261, und eigentlich ist Java 8 tot; Oracle möchte, dass wir Java 11 verwenden.

              Ja, was die Leute so alles möchten ...

              Aber man sollte den jarfile-Eintrag nur im Notfall manuell machen. Der muss vom JRE Installer gesetzt werden. Es kann natürlich auch sein, dass das JDK ihn nicht setzt, dann muss man es tun und bei jedem Update dranbleiben.

              Genau das war bei Rudi anscheinend der Fall. Wobei ... das mit den Updates ist ein sehr guter Punkt. Daran hatte ich gar nicht gedacht.

              Sorry, finde gerade erst Dedlfix' Beitrag. JRE11 gibt's also nicht mehr. Wusste ich nicht; ich bin kein Java Entwickler.

              Geht mir ebenso.

              Aber das bedeutet dann auch, dass man nicht irgendwelche JARs zum Ausführen bekommt, sondern eine Application aus Jar + Runtime.

              So müsste es dann wohl sein.

              Live long and pros healthy,
               Martin

              --
              Home is where my beer is.
          2. Hallo Martin mit der Angabe der Version 261 (bei mir installierte Version) hat es mit Deinem Code-Schnipsel geklappt!

            Danke allen!

  2. Hallo Rudi,

    was willst Du tun? Öffnen ist ein breiter Begriff...

    Wenn Du nur schauen willst, was drin ist - JAR ist ein ZIP Format. Dafür brauchst Du kein JDK (und auch kein JRE).

    Wenn es sich um eine Anwendung handelt, musst Du das jar mittels java.exe und der -jar Option starten. Unter Windows registriert Java eine Shell-Extension für jarfiles, die das automatisch tut (sie startet javaw.exe, die Konsole-freie Version von java). D.h. ein Doppelklick auf das jar sollte genügen.

    java.exe direkt zuzuordnen wird definitiv scheitern, weil dann die -jar Option nicht gesetzt wird. Ob Du durch dein "öffnen mit" jetzt was kaputt gemacht hast, keine Ahnung.

    Das JDK ist übrigens der Overkill; zum Ausführen von Java-Anwendungen reicht das JRE (Java Runtime Environment).

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo Rolf,

      was willst Du tun? Öffnen ist ein breiter Begriff...

      stimmt, deswegen stößt mir der Begriff auch oft sauer auf, speziell bei ausführbaren Dateien. "Öffnen" heißt für mich, einen Blick hinein werfen, eventuell den Inhalt bearbeiten. "Ausführen" ist etwas ganz anderes.

      Aber in Windows werden ja auch exe-Dateien "geöffnet".

      Wenn es sich um eine Anwendung handelt, musst Du das jar mittels java.exe und der -jar Option starten.

      What I said.

      java.exe direkt zuzuordnen wird definitiv scheitern, weil dann die -jar Option nicht gesetzt wird. Ob Du durch dein "öffnen mit" jetzt was kaputt gemacht hast, keine Ahnung.

      Zum Glück kann man Dateityp-Zuordnungen unter Windows ja noch halbwegs komfortabel in der Registry bearbeiten und reparieren, wenn man weiß, was man tut.

      Das JDK ist übrigens der Overkill; zum Ausführen von Java-Anwendungen reicht das JRE (Java Runtime Environment).

      What I said. 😉

      Live long and pros healthy,
       Martin

      --
      Home is where my beer is.
      1. Hallo Martin,

        What I said.

        You didn't when I started answering (and in between, my wife called).

        Rolf

        --
        sumpsi - posui - obstruxi