Yes you can.
You should use the SDK Man software.
curl -s "https://get.sdkman.io" | bash
When doing the sdk list java, you will get a screen like this:
=============================================================================== Available Java Versions for Linux 64bit ================================================================================ Vendor | Use | Version | Dist | Status | Identifier -------------------------------------------------------------------------------- Corretto | | 21.0.2 | amzn | | 21.0.2-amzn
| | 21.0.1 | amzn | | 21.0.1-amzn
| | 17.0.10 | amzn | | 17.0.10-amzn
| | 17.0.9 | amzn | | 17.0.9-amzn
| | 11.0.22 | amzn | | 11.0.22-amzn
| | 11.0.21 | amzn | | 11.0.21-amzn
| | 8.0.402 | amzn | | 8.0.402-amzn
| | 8.0.392 | amzn | | 8.0.392-amzn Dragonwell | | 17.0.9 | albba | | 17.0.9-albba
| | 11.0.21 | albba | | 11.0.21-albba
| | 11.0.20 | albba | | 11.0.20-albba
| | 8.0.402 | albba | | 8.0.402-albba
| | 8.0.392 | albba | | 8.0.392-albba
| | 8.0.382 | albba | | 8.0.382-albba Gluon | | 22.1.0.1.r17 | gln | | 22.1.0.1.r17-gln
| | 22.1.0.1.r11 | gln | | 22.1.0.1.r11-gln GraalVM CE | | 21.0.2 | graalce | | 21.0.2-graalce
| | 21.0.1 | graalce | | 21.0.1-graalce
| | 17.0.9 | graalce | | 17.0.9-graalce GraalVM Oracle| >>> | 21.0.2 | graal | installed | 21.0.2-graal
| | 21.0.1 | graal | | 21.0.1-graal
| | 17.0.10 | graal | | 17.0.10-graal
| | 17.0.9 | graal | | 17.0.9-graal
First of all you should install all the different version by:
sdk install java yourVersion like sdk install java 21.0.1-graalce or sdk install java 17.0.9-graalce or sdk install java 23.ea.12-open.
This allows you to go to a directory and do sdk use java 21.0.1-graalce.
This will activate the JDK 21 version of the GraalVM CommunityEdition (CE). You can do this for different version in different directories.
Answer from Mahir Zukic on Stack OverflowGetting started with SDKMAN! – Manage Java, Maven, Gradle versions with ease
Installing jdk with sdkman keeps reporting errors
Videos
Yes you can.
You should use the SDK Man software.
curl -s "https://get.sdkman.io" | bash
When doing the sdk list java, you will get a screen like this:
=============================================================================== Available Java Versions for Linux 64bit ================================================================================ Vendor | Use | Version | Dist | Status | Identifier -------------------------------------------------------------------------------- Corretto | | 21.0.2 | amzn | | 21.0.2-amzn
| | 21.0.1 | amzn | | 21.0.1-amzn
| | 17.0.10 | amzn | | 17.0.10-amzn
| | 17.0.9 | amzn | | 17.0.9-amzn
| | 11.0.22 | amzn | | 11.0.22-amzn
| | 11.0.21 | amzn | | 11.0.21-amzn
| | 8.0.402 | amzn | | 8.0.402-amzn
| | 8.0.392 | amzn | | 8.0.392-amzn Dragonwell | | 17.0.9 | albba | | 17.0.9-albba
| | 11.0.21 | albba | | 11.0.21-albba
| | 11.0.20 | albba | | 11.0.20-albba
| | 8.0.402 | albba | | 8.0.402-albba
| | 8.0.392 | albba | | 8.0.392-albba
| | 8.0.382 | albba | | 8.0.382-albba Gluon | | 22.1.0.1.r17 | gln | | 22.1.0.1.r17-gln
| | 22.1.0.1.r11 | gln | | 22.1.0.1.r11-gln GraalVM CE | | 21.0.2 | graalce | | 21.0.2-graalce
| | 21.0.1 | graalce | | 21.0.1-graalce
| | 17.0.9 | graalce | | 17.0.9-graalce GraalVM Oracle| >>> | 21.0.2 | graal | installed | 21.0.2-graal
| | 21.0.1 | graal | | 21.0.1-graal
| | 17.0.10 | graal | | 17.0.10-graal
| | 17.0.9 | graal | | 17.0.9-graal
First of all you should install all the different version by:
sdk install java yourVersion like sdk install java 21.0.1-graalce or sdk install java 17.0.9-graalce or sdk install java 23.ea.12-open.
This allows you to go to a directory and do sdk use java 21.0.1-graalce.
This will activate the JDK 21 version of the GraalVM CommunityEdition (CE). You can do this for different version in different directories.
For support purposes I have multiple versions of Java installed all the time. Namely, I have:
- Oracle Java 6
- Oracle Java 7
- Oracle Java 8
- Oracle Java 11
- OpenJDK 11
- OpenJDK 17
- OpenJDK 21
Yes, I have two Java 11 from different sources.
You can download the packages separately and decompress them. This stategy avoids using the installers since they will try to manage the system properties and set/reset their own versions as the "default one". You probably want to manage the default manually, not automatically.
Now, your folder will look like:
Copyjdk1.6.0_34
jdk1.7.0_40
jdk1.8.0_51
openjdk-11+28
java -> jdk-11+28 (this is a symlink)
...
The PATH variable includes the symlink folder only. This way I decide which java version to use by switching the java symlink -- that is pointing in this example to the OpenJDK 11. If I want to use Java 6, I can repoint the symlink by doing:
Copyrm java
ln -s jdk1.6.0_34 java
Easy, isn't it?
Finally, most IDEs can make this change a lot easier, but I wanted to show you the manual way of doing things, so you can understand there's no magic behind it.
I put together a beginner-friendly guide on SDKMAN!, a super handy tool for managing parallel versions of Java SDKs, Maven, Gradle, and many other development tools right from your terminal.
If you've ever struggled with switching between Java versions for different projects, SDKMAN! can really simplify your workflow.
In the post, I cover:
What SDKMAN! is and why it’s useful.
How to install it.
How to install and switch between SDKs.
Tips for setting a default version.
Hope it helps someone!