survial555
Goto Top

2 Java Versionen

Hallo,
ich habe zwei Programme die beide Java benötigen.
Jedoch laufen die Programme nur, wenn unterschiedliche Versionen von Java installiert sind.
Das eine braucht normal Version 8 Update 311.
Das zweite Programm braucht jdk-11.0.13_windows-x64.
Wenn beide installiert sind, läuft immer nur das Programm dessen zugehörige Java Version als letztes installiert ist.
Ich hoffe man versteht wie und was ich meine. face-wink
Kann man hier Tipps geben?

Danke!

Content-ID: 1490148069

Url: https://administrator.de/contentid/1490148069

Ausgedruckt am: 25.11.2024 um 10:11 Uhr

149569
149569 10.11.2021 aktualisiert um 12:14:53 Uhr
Goto Top
Entsprechende JAVA_HOME Umgebungsvariable vor dem Ausführen der jeweiligen Anwendung auf die gewünschte Java Version setzen (z.B. Start via Script)
Multiple Java versions running concurrently under Windows
Oder das JAR der Anwendung direkt mit der jeweilgen JAVA-EXE aus den bin Verzeichnissen der JRE Versionen starten.
NordicMike
NordicMike 10.11.2021 um 12:12:52 Uhr
Goto Top
Du kannst auch ohne der JAVA_HOME Umgebungsvariable das gewünschte Java direkt starten und die Java Anwendung wird dann vom gewünschten Java gestartet.

also ca so:
c:\programme\java1\java.exe anwendung.jar
survial555
survial555 10.11.2021 um 15:03:13 Uhr
Goto Top
Ich bekomme es einfach nicht zum Laufen.
Ich habe noch mal nachgeschaut.
Das Programm, welches das JDK11 braucht, ist keine direkt Java Anwendung. Es wird eine EXE gestartet, die aber meldet, dass zum Starten JDK11 benötigt wird.
Programm 2 ist eine JAR Datei. Sie braucht die 8er.

Beim Starten des JAR Programms erhalte ich immer die Meldung:
Fehler in Thread{main,5,main]
sun/misc/BASE64Decoder
149569
149569 10.11.2021 um 17:13:34 Uhr
Goto Top
Zitat von @survial555:
Das Programm, welches das JDK11 braucht, ist keine direkt Java Anwendung. Es wird eine EXE gestartet, die aber meldet, dass zum Starten JDK11 benötigt wird.
Dann stell JDK11 als Standard in der PATH Variablen ein.
Programm 2 ist eine JAR Datei. Sie braucht die 8er.

Beim Starten des JAR Programms erhalte ich immer die Meldung:
Fehler in Thread{main,5,main]
sun/misc/BASE64Decoder
Und das startest du mit explizitem Aufruf der jave.exe aus dem jrd/jdk 8 Verzeichnis.
MirkoKR
MirkoKR 10.11.2021 aktualisiert um 19:43:45 Uhr
Goto Top
Hi

Die Suche nach Programmen und Modulen die von einem Programm benötigt werden beginnt meist im eigenen Ordner - also hier der Ordner in dem deine EXE gespeichert ist.

Wenn du

die JDK11 im selben Ordner wie die aufrufende EXE speicherst, könnte das schon funktionieren...

.. vorausgesetzt die EXE wertet nicht zuerst die PATH oder JAVA_HOME Variablen aus.
Falls doch, ggf. die Variablen temporär von Java-Verweisen befreien.


Viel Erfolg!

.P.S.
Das ist natürlich auch nur ein Workaround, keine Lösung.

Und: Wenn deine EXE zum Ausführen selbstentpackend ist, wird das auch nicht funktionieren, weil die eigentliche (.jar ?) Datei in einem Temp-Ordner entpackt und von da ausgeführt wird.

Das manuelle Entpacken der EXE - mit 7zip, etc - könnte dir aber helfen die eigentliche Datei zu finden und über obige Tipps zu starten ...

PPS

Auch möglich. das deine EXE die Java Module zur Laufzeit aus dem Internet in einen Temp-Ordner lädt um stets aktuell zu sein.
Dann wird das Entpacken der EXE nichts bringen und bei unterbrochener Internet-Verbindung müsste eine Fehlermeldung deswegen beim Ausführen kommen...