Am extras scriptul din pachetul original AdoptOpenJDK deb și versiunea modificată pe care o folosesc ca:
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
Codul sursă al scriptului:
#!/bin/sh
set -eu
prioritate=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"
dacă [ ! -d „$jdk_base_dir” ]
atunci
echo "Director java nevalid. Alegeți unul dintre: ";
ls -1d /usr/lib/jvm/*
Ieșire
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 rmid serial jespack20helper" jspapack20helper"
cazul „$1” în
instalare)
pentru instrument în $tools ; do
pentru tool_path în „$jdk_base_dir/bin/$tool” „$jdk_base_dir/lib/$tool” ; do
dacă [ ! -e „$calea_uneltei”]; atunci
continua
fi
sclav=""
tool_man_path="$jdk_base_dir/man/man1/$tool.1"
if [ -e "$tool_man_path" ]; atunci
slave="--slave /usr/share/man/man1/$tool.1 $tool.1 $tool_man_path"
fi
update-alternative \
--instalare \
„/usr/bin/$tool” \
„$instrument” \
„$tool_path” \
„$prioritate” \
$slave
Terminat
Terminat
;;
elimina)
pentru instrument în $tools ; do
pentru tool_path în „$jdk_base_dir/bin/$tool” „$jdk_base_dir/lib/$tool” ; do
dacă [ ! -e „$calea_uneltei”]; atunci
continua
fi
update-alternative \
--elimina \
„$instrument” \
„$tool_path”
Terminat
Terminat
;;
a stabilit)
pentru instrument în $tools ; do
pentru tool_path în „$jdk_base_dir/bin/$tool” „$jdk_base_dir/lib/$tool” ; do
dacă [ ! -e „$calea_uneltei”]; atunci
continua
fi
update-alternative \
--a stabilit \
„$instrument” \
„$tool_path”
Terminat
Terminat
;;
esac