Aktuelle Java-Runtime ermitteln

  • Hallo zusammen,

    ich möchte einen Updater für die ganz normale Java-Runtime erstellen. Dieser besteht aus 2 Scripten. Einer soll die aktuelle Version herunterladen und auf einem Server ablegen.
    Das andere Script wird auf den Clients installiert und diese sollen dann die aktuelle version vom server holen und installieren.

    Nun habe ich ein paar Probleme mit den Versionsnummern.
    Auf dieser Seite https://www.java.com/de/download/manual.jsp gibt es die offline Installer für Windows 32bit. Über die Überschrift kann ich die Version holen. (derzeit Version 8 Update 31)

    Die installierte Version könnte ich über die Registry über den folgendne Schlüssel holen:
    HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
    Hier gibt es den Schlüssel CurrentVersion. Wenn jedoch die Version 8 Update 31 installiert ist, dann erscheint hier 1.8

    Hat jemand mit Java-Updates Erfahrungen und eventuell einen Tipp, wie ich die Versionen korrekt vergleichen kann bzw. wo ich im Netz immer die aktuelle Version wie in der Registry finden kann?

  • Denke du hast den richtigen Schlüssel in der Regedit.
    Allerdings würde ich noch in den Schlüssel gehen den CurrentVersion als Wert anzeigt (also HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8).
    Dort dann JavaHome auslesen und die Versionsnummer mit Stringsplit trennen.

    Auf der obigen Seite sollte immer die neueste Java-Version vorhanden sein. Sollte passen.

  • Man muss da noch mehr beachten. Zum einen ist es möglich sowohl Java 7 als auch Java 8 paralell installiert zu haben, zum anderen kann man auch noch unterschiedliche Java Versionen für 32 und 64bit installiert haben. Anstatt sich die Mühe zu machen das alles zu prüfen ist es vielleicht einfacher regelmässig die neueste Version in 32 und 64bit auszurollen, unabhängig davon ob diese evtl. schon manuell installiert wurde. Der Setup erkennt denke ich selbsständig wenn Java bereits in der aktuellen Version installiert ist und bricht dann einfach ab. Müsstest du aber natürlich testen.

    Damit dein Clientscript das nicht unnötig oft wiederholt könntest du lokal auf dem Client eine Logdatei anlegen in der das Clientscript nachschauen kann ob es bereits das letzte Update vom Rollout Server installiert hat.

    Natürlich kannst du aber auch wie oben beschrieben vorgehen und sämtliche Registrykeys zerlegen und prüfen.

  • Dort dann JavaHome auslesen und die Versionsnummer mit Stringsplit trennen.


    Den Eintrag habe ich auch schon gefunden. Jedoch steht dort 'C:\Program Files\Java\jre1.8.0_31'. Auf der oben genannten Webseite steht jedoch Version 8 Update 31.
    Gibt es auch eine Seite, wo ich direkt die version als String im Format 1.8.0_31 bekomme?


    Anstatt sich die Mühe zu machen das alles zu prüfen ist es vielleicht einfacher regelmässig die neueste Version in 32 und 64bit auszurollen, unabhängig davon ob diese evtl. schon manuell installiert wurde. Der Setup erkennt denke ich selbsständig wenn Java bereits in der aktuellen Version installiert ist und bricht dann einfach ab. Müsstest du aber natürlich testen.

    Damit dein Clientscript das nicht unnötig oft wiederholt könntest du lokal auf dem Client eine Logdatei anlegen in der das Clientscript nachschauen kann ob es bereits das letzte Update vom Rollout Server installiert hat.


    Diese Variante wird wohl das einfachste sein.