$ sudo tar -xf jdk-23_linux-x64_bin.tar.gz -C /opt/Change the folder permissions (replace 'mtitek' with your username):
$ sudo chmod -R 755 /opt/jdk-23.0.2 $ sudo chown -R mtitek:mtitek /opt/jdk-23.0.2Setup the environment variables JAVA_HOME and PATH:
$ vi ~/.profile
export JAVA_HOME=/opt/jdk-23.0.2 export PATH=$JAVA_HOME/bin:$PATH
$ source ~/.profile
$ java -version
openjdk version "23.0.2" 2025-01-21 OpenJDK Runtime Environment (build 23.0.2+7-58) OpenJDK 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing)Locate the java executable:
$ which java /opt/jdk-23.0.2/bin/java
$ ls -al /usr/bin/java lrwxrwxrwx 1 root root /usr/bin/java -> /etc/alternatives/java
$ ls -al /etc/alternatives/java lrwxrwxrwx 1 root root /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-amd64/bin/java
$ update-alternatives --list java
$ sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk-23.0.2/bin/java" 1 $ sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/jdk-23.0.2/bin/javac" 1Display current alternatives:
$ update-alternatives --display java java - auto mode link currently points to /usr/lib/jvm/java-17-openjdk-amd64/bin/java /opt/jdk-23.0.2/bin/java - priority 1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java - priority 1711 Current 'best' version is '/usr/lib/jvm/java-17-openjdk-amd64/bin/java'.
$ sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode 1 /opt/jdk-23.0.2/bin/java 1 manual mode 2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode Press <enter> to keep the current choice[*], or type selection number: 1 update-alternatives: using /opt/jdk-23.0.2/bin/java to provide /usr/bin/java (java) in manual modeAlso configure javac if you installed the compiler:
$ sudo update-alternatives --config javac
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")Or add this to your shell profile for persistence:
$ echo 'export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")' >> ~/.profile