Java? p? Linux

Java-pakkene p? RHEL og Fedora er laget slik at man kan ha flere installert samtidig, og velge hvilken man ?nsker skal v?re standard p? maskinen.

1???Tilgjengelige Java-versjoner

Viktig

Oracle har endret lisensbetingelsene for Oracle Java, og derfor er ikke lenger Oracle Java en del av Red Hat Enterprise Linux.

Hovedsakelig er det kun OpenJDK som er tilgjengelig p? RHEL. RHEL7 har en versjon fra IBM som vi ikke anbefaler ? bruke.

2???Installere Java

For ? se hvilke Java-pakker som er tilgjengelig (og installert) p? en maskin, kj?r f?lgende kommando:

sudo yum list java-*-openjdk.x86_64

Java-pakkene har navn som f?lger: java-<versjon>-<type>. Her er noen eksempler:

  • java-1.8.0-openjdk
  • java-11-openjdk
  • java-17-openjdk
  • java-21-openjdk
  • java-latest-openjdk

Pakkene "java-latest" b?r kun brukes til test. For ?vrig b?r man bruke siste versjon (her: java-21-openjdk). For ? installere:

sudo yum install java-21-openjdk

Men de fleste trenger kun headless-varianten:

sudo yum install java-21-openjdk-headless

3???Bytte mellom Java-versjoner

Pakkenavnet for Java-pakkene er ukonvensjonelt ved at det inkluderer versjon i selve navnet for pakken. Dette er gjort slik at det er mulig ? ha mer enn en Java installert samtidig. Java-pakkene bruker en mekanisme som heter alternatives for ? sette hvilken Java som /usr/bin/java peker til og som dermed er standard for maskinen. For ? endre hvilken Java som /usr/bin/java peker til (eksempel):

$ sudo alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.22.0.7-2.el9.x86_64/bin/java)
   2           java-21-openjdk.x86_64 (/usr/lib/jvm/java-21-openjdk-21.0.2.0.13-1.el9.x86_64/bin/java)

Enter to keep the current selection[+], or type selection number: 2

Det kan v?re andre java-ting som man ogs? ?nsker ? justere. Fullstendig liste f?r man med:

sudo alternatives --list

Foruten kommandoen "alternatives", kan man kan sjekke hvilken versjon som er satt som standard med java -version. Eksempel:

$ java -version
openjdk 21.0.2 2024-01-16 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.2.0.13-1) (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.2.0.13-1) (build 21.0.2+13-LTS, mixed mode, sharing)

Man kan ogs? bruke readlink. Eksempel:

$ readlink -f /usr/bin/java
/usr/lib/jvm/java-21-openjdk-21.0.2.0.13-1.el9.x86_64/bin/java

4???Sette JAVA_HOME

Noen applikasjoner forventer at JAVA_HOME er satt. Man kan sette denne til katalogen hvor JRE eller JDK er installert, men det enkleste er ? sette den slik:

export JAVA_HOME="/usr"

Dette forutsetter at /usr/bin/java er satt til ? peke p? riktig Java. Se avsnittet over.

Av Trond Hasle Amundsen
Publisert 2. apr. 2024 17:04