Mehrere Java Versionen parallel nutzen

Oft kommt es vor, dass alte Java-Applets nicht mit der neusten Java Version ausgeführt werden könne. Für diesen Fall benötigt man ein System mit einer älteren Java Version. Normalerweise ist ein Parallelbetrieb von zwei Java Versionen nicht ohne weiteres möglich, da immer die neueste als Grundlage für das Applet genutzt wird.

Installation der verschiedenen Java Versionen

Um mehrere Java Versionen parallel nutzen zu können, ist es notwendig erst die neueste Version zu installieren. Sobald dies erfolgt ist, kann man nach und nach alle weiteren Benötigten Versionen installieren.

In diesem Beispiel habe ich die Java Versionen in die folgenden Verzeichnisse installiert:

  • C:\Java\Java_4\
  • C:\Java\Java_6\
  • C:\Java\Java_7\

Um nun zu prüfen ob diese korrekt installiert wurden. Rufen wir den Java Konfigurator auf.

C:\Java\Java_7\bin\javacpl.exe

Im Java-Konfigurator wählen wir den Reiter Java und dort den Knopf Ansicht. In dieser Ansicht kann die Java Version, die benötigt wird auch aktiviert werden und die anderen, nicht benötigten Versionen deaktiviert werden.

java_version_wechselAutomatisches Umschalten der Java Version

Das Umschalten über den Konfigurator ist recht umständlich und muss auch für jeden Benutzer separat erfolgen. Zusätzlich kann nicht für jede .jar Datei ein Pfad angegeben werden um auf die korrekte Java Version zu referenzieren. Bei Browser Java Applets ist dies nicht möglich. Ein Beispiel für eine Browser Java Anwendung ist das Dell Remote Administration Control Panel, kurz DRAC genannt. Bei älteren Server ist dies nur offiziell mit Java 1.4 bzw. Java 4 kompatibel.

Allerdings lassen sich die, im Konfigurator hinterlegten Werte auch über eine Textdatei konfigurieren. Die Konfigurationsdatei „deployment.properties“ liegt im Benutzerprofilverzeichnis.

%USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment

Nach der Installation sind die einzigen Werte in der Datei, die wir für unser Vorhaben wirklich benötigen, die „enabled“ Werte. Diese geben an ob die Version aktiviert oder deaktiviert ist.

Um nun die einzelnen Versionen nutzen zu können, kann man innerhalb dieser Datei die einzelnen Versionen ab- und anschalten. Dies könnte beispielsweise automatisiert erfolgen, indem man mehrere Dateien erstellt und diese wechselt.

Mit der PowerShell die aktive Java Version umschalten

Das folgende Script fragt, welche Java Version aktiviert werden soll und erstellt die passende „deployment.properties“-Datei.

 

4 Gedanken zu „Mehrere Java Versionen parallel nutzen

  1. Loosli

    Guten Tag
    Auf einem Win7 Rechner benötige ich für eine Java Applikation JRE 1.7. Für Chrome und IE soll aber die neuste Jave version verwendet werden. Der Benutzer sollte nichts damit zu tun haben und auch neuere Versionen installieren können. Was schlägt ihr vor?

    1. tschneider Beitragsautor

      Hi,
      sorry für die späte Nachricht. 🙂
      Man kann auch eine quasi portable Version von Java erstellen. Hierzu müssen nur alle notwendigen Bibliotheken und Ordner der benötigten Java Version in einem Ordner bereitstellen.
      Den Aufruf führt man direkt über die Java.exe Datei aus. Sollte die Software auf JavaHome verweisen, kann dies umgesetzt werden, da Firefox und Chrome hier eigene Plugins nutzen/ bekommen. Der Internet Explorer würde hier Schwierigkeiten machen. Aber auch alle anderen Apps auf dem Rechner beachten, die erhalten dann ebenfalls die alte Java Version. Man könnte das Programm auch in einem anderen Userkontext starten und dort die JavaHome Umgebungsvariable setzen. Da bin ich mir gerade nicht sicher ob das so geht.

      Um die Java.exe aufrufen zu können, sollte man noch die entsprechenden Konfigurationsdateien bereitstellen und beim Aufruf mit angeben.

      Ich hoffe das hilft dir ein Wenig weiter und kommt nicht zu spät.

      Gruß Tobias

    2. Pete

      Vielleicht hilft es ja noch:
      Du kannst einfach das Programm mit dem Java-Pfad aufrufen:
      „C:\Program Files (x86)\Java\jre7\bin\java.exe“ -jar jdk_7.7.1_anwendung.jar
      oder halt
      C:\Programme\Java\1.4\bin\javaw.exe -jar meineJar14.jar
      C:\Programme\Java\1.5\bin\javaw.exe -jar meineJar15.jar

      Eventuell kannst du beim Aufruf auch den Classpath mit angeben. Schau dir mal auf der CMD mit ‚java -help‘ den Parameter ‚-cp‘ oder ‚-classpath‘ an.

      Gruß
      Pete

      1. tschneider Beitragsautor

        Hallo Pete,

        danke für deinen Kommentar.
        Leider ist das Thema für mich nicht aktuell, allerdings ist dies für andere Besucher sicher eine nützliche Information.

        Vielen Dank.

        Gruß T.Schneider

Kommentare sind geschlossen.