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-Key: 1490148069

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

Printed on: April 26, 2024 at 20:04 o'clock

Mitglied: 149569
149569 Nov 10, 2021 updated at 11:14:53 (UTC)
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.
Member: NordicMike
NordicMike Nov 10, 2021 at 11:12:52 (UTC)
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
Member: survial555
survial555 Nov 10, 2021 at 14:03:13 (UTC)
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
Mitglied: 149569
149569 Nov 10, 2021 at 16:13:34 (UTC)
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.
Member: MirkoKR
MirkoKR Nov 10, 2021 updated at 18:43:45 (UTC)
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...