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