Linux-Rechner - OpenJDK und Oracle JDK parallel - Problem?

openjdk
jdk
linux

#1

Hallo zusammen,

vielleicht könnte man das auch bei Betriebssysteme reinpacken aber ich versuch es erstmal hier.

Auf einem Linux-Rechner auf den ich nur mittels putty in einem User-Kontext arbeiten kann ist mir gerade folgendes aufgefallen:
[user@host ~]$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[user@host ~]$ echo $JAVA_HOME
/usr/people/user/testServer/jdk1.8.0_121

Ist das ein potentielles Problem? Ich brauche für meine Tests das JDK, welches in der JAVA_HOME-Variable angegeben ist. Ich weiß allerdings nicht, ob dort noch andere Dienste oder Anwendungen laufen, die ebenfalls Java benutzen.

Meine Anwendung zieht auch die von mir benötigte Version, bisher also kein Problem.
Ich möchte aber jetzt die von mir genutzte Version durch eine aktuellere tauschen und kann leider nicht so ganz abschätzen, ob das Probleme machen könnte.

Vielleicht habt ihr ja einen Rat für mich.


#2

wenn es mehrere Installationen von Java auf der Platte gibt kann mal einfach zwischen denen umschalten, sofern diese tatsächlich installiert wurden, und nicht nur hin kopiert:

https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Web_Platform/5/html/Installation_Guide/sect-use_alternatives_to_set_default_JDK.html


#3

Soweit mir bekannt ist, wurde nur das OpenJDK installiert, das Oracle JDK wurde rüber kopiert. Das kann ich am Donnerstag erst erfragen.

Aber danke schonmal für den Link, das schau ich mir genauer an.


#4

In dem Fall kann man das kopierte JavaHome wahrscheinlich mit ein wenig Handarbeit in das Alternatives-System einhängen. Da gibts sicher eine oder mehrere config-Dateien, die man kopieren/ändern kann…

Aber aufpassen: soweit ich weiß ändert alternatives die Einstellung systemweit, das heißt, dass das JavaHome auch für alle lesbar und ausführbar sein muss.


#5

Wenn es oracle-java8 (beinhaltet mWn auc das JDK) sein soll:

Achte bei bzw nach der Installation auf:

sudo apt-get install oracle-java8-set-default

Weiteres: Link .


#6

Wie startest du deine Java-Programme?

Für alternatives brauchst du afair root-Rechte, weil das ganze Systemweit geändert wird.

Normalerweise reicht ein kopiertes JDK oder JRE aus um damit zu arbeiten.

In dem Terminal, in dem du das Programm startest kannst du auch JAVA_HOME angeben, dass dann in dieser Session genutzt werden soll. Bzw. in einem Script.

#!/bin/bash
export JAVA_HOME=/pfad zu java

$JAVA_HOME/bin/java -jar app.jar

Mit

which java

Kannst du dir auch anzeigen lassen welches binary für java verwendet wird. Meist ist das aber auch nur ein Link, der durch alternatives gesetzt wurde, den du aber mit ls -l nachverfolgen kannst.


#7

root-Rechte werde ich nicht bekommen, also fällt das mit der “alternatives” aus. Hatte bisher noch keine Zeit mir den Link von @Timothy_Truckle genauer anzusehen, hatte ihn nur überflogen.


Das ist eine gute Idee, ich werde mir ein kleines Start-Script schreiben, da brauch ich mir dann keine Sorgen um andere Anwendungen machen und falls da mal wer anders ran muss ist es für ihn auch leichter als einen kompletten Aufruf in den Terminal zutippen.