Quería instalar Temurin JDK tanto 8 como 11, los instalé siguiendo estos pasos
wget https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u312-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz
tar xzf OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz
sudo mv jdk8u312-b07/ /usr/lib/jvm/temurinjdk-8-hotspot-amd64
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/temurinjdk-8-hotspot-amd64/bin/java" 1081
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/temurinjdk-8-hotspot-amd64/bin/javac" 1081
Pero no estoy seguro de si esto es 100% correcto y ¿cómo genero el archivo .jinfo?
Respuesta1
Puedes usar elRepositorio Adoptium Debian/Ubuntu
Agregue la clave GPG de Eclipse Adoptium
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo apt-key add -
Agregue el repositorio apto de Eclipse Adoptium
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
Instale la versión de Temurin que necesite
sudo apt update # update if you haven't already sudo apt install temurin-8-jdk sudo apt install temurin-17-jdk
Configurar la versión predeterminada
sudo update-alternatives --config java
Respuesta2
Extraje el script del paquete deb AdoptOpenJDK original y modifiqué la versión que uso como:
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz
mkdir -p /usr/lib/jvm
sudo tar -xvvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz -C /usr/lib/jvm/
sudo ./java-alternative install /usr/lib/jvm/jdk-17.0.1+12
sudo ./java-alternative set /usr/lib/jvm/jdk-17.0.1+12
…
sudo ./java-alternative remove /usr/lib/jvm/jdk-17.0.1+12
Código fuente del script:
#!/bin/sh
set -eu
priority=2222
#jdk_base_dir=/usr/lib/jvm/adoptopenjdk-11-hotspot-amd64
#jdk_base_dir=/usr/lib/jvm/jdk-17.0.1+12
jdk_base_dir="$2"
if [ ! -d "$jdk_base_dir" ]
then
echo "Invalid java directory. Choose one of: ";
ls -1d /usr/lib/jvm/*
exit
fi
tools="jaotc jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jfr jhsdb jimage jinfo jjs jlink jmap jmod jps jrunscript jshell jstack jstat jstatd keytool pack200 rmic rmid rmiregistry serialver unpack200 jexec jspawnhelper"
case "$1" in
install)
for tool in $tools ; do
for tool_path in "$jdk_base_dir/bin/$tool" "$jdk_base_dir/lib/$tool" ; do
if [ ! -e "$tool_path" ]; then
continue
fi
slave=""
tool_man_path="$jdk_base_dir/man/man1/$tool.1"
if [ -e "$tool_man_path" ]; then
slave="--slave /usr/share/man/man1/$tool.1 $tool.1 $tool_man_path"
fi
update-alternatives \
--install \
"/usr/bin/$tool" \
"$tool" \
"$tool_path" \
"$priority" \
$slave
done
done
;;
remove)
for tool in $tools ; do
for tool_path in "$jdk_base_dir/bin/$tool" "$jdk_base_dir/lib/$tool" ; do
if [ ! -e "$tool_path" ]; then
continue
fi
update-alternatives \
--remove \
"$tool" \
"$tool_path"
done
done
;;
set)
for tool in $tools ; do
for tool_path in "$jdk_base_dir/bin/$tool" "$jdk_base_dir/lib/$tool" ; do
if [ ! -e "$tool_path" ]; then
continue
fi
update-alternatives \
--set \
"$tool" \
"$tool_path"
done
done
;;
esac