To answer my own question, based on help from #centos on irc.freenode.net, to select/set on the command line:
# alternatives --set java java-1.8.0-openjdk.x86_64
For Ansible, looking at the source of the alternatives module it requires a path to the java executable, such as /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/bin/java so this doesn't seem to be as easy/straight forward.
Videos
You can use SDKMan which allow us to do the same, SDKMan is a free to use open-sourced tool which helps us to install and manage parallel versions of around 29 Software Development Kits such as Java, Groovy, Scala, Kotlin and Ceylon. Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, Vert.x.
And it also sets the _HOME and PATH environment variables automatically.
You can install SDKMan by running below commands
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
You can list all versions of Java using
$ sdk list java
And you can install different-different Java versions using sdk install command
e.g.
$ sdk install java 9.0.4-open
$ sdk install java 11.0.2-open
And you can switch between them using sdk use and sdk default commands, You can read more about it on my blog How to Install Multiple Versions of Java on the Same Machine.
I type all command in sudo mode
I just remove the link to the current java binary in my system
rm /etc/alternatives/java
Then I set the link to the new binary I want to use
ln -s /usr/lib/jvm/java-17-openjdk-amd64/bin/java /etc/alternatives/java
I can't play Minecraft properly on my new PC. On the version from minecraft.net its not possible to play online on an older version and the AUR version is not even able to be opened.
I am not sure, if it really has something to do with my Java version but I think so.
Thanks in advance
Apt-get won't overwrite the existing java versions.
To switch between installed java versions, use the update-java-alternatives command.
List all java versions:
update-java-alternatives --list
Set java version as default (needs root permissions):
sudo update-java-alternatives --set /path/to/java/version
...where /path/to/java/version is one of those listed by the previous command (e.g. /usr/lib/jvm/java-7-openjdk-amd64).
Additional information:
update-java-alternatives is a convenience tool that uses Debian's alternatives system (update-alternatives) to set a bunch of links to the specified java version (e.g. java, javac, ...).
Use
sudo update-alternatives --config java
which lists all installed versions with current active one marked and provides dialog to switch:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path...
------------------------------------------------------------
0 /usr/lib/jvm/java-9-oracle/bin/java...
* 1 /usr/lib/jvm/java-7-oracle/jre/bin/java...
2 /usr/lib/jvm/java-8-oracle/jre/bin/java...
3 /usr/lib/jvm/java-9-oracle/bin/java...
Press <enter> to keep...[*], or type selection number:
Use
export JAVA_HOME="$(jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));')"
to set $JAVA_HOME from current active version