[ad_1]
Java is one of the most popular programming languages used to build different types of applications and systems.
There are two different implementations of Java, OpenJDK and Oracle Java, with almost no differences between them, except that Oracle Java has a few additional commercial features. Oracle Java License
permits only non-commercial use of the software, such as personal use and development use. OpenJDK is an open-source implementation of the Java Platform.
The default CentOS 8 repositories include the latest two major Java LTS versions, Java 8 and Java 11.
In this tutorial, we will explain how to install one or more Java (OpenJDK) versions on CentOS 8 and how to set the default Java via alternatives.
Installing OpenJDK 11 #
The general recommendation is to install the latest Java LTS version (JDK 11) version. Some Java-based applications may require a specific version of Java, so you might need to consult the application documentation.
To install the OpenJDK 11 on CentOS 8, run the following command as root or user with sudo privileges
:
sudo dnf install java-11-openjdk-devel
Once the installation is complete, you can verify it by checking the Java version:
java -version
The output should look something like this:
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.4+11-LTS, mixed mode, sharing)
That’s it! You have successfully installed Java on your CentOS 8 system.
CentOS 8 also supports a headless version of OpenJDK that provides a minimal Java runtime needed for executing applications without a graphical user interface (no keyboard, mouse, and display systems support). This version is more suitable for server applications since it has fewer dependencies and uses fewer system resources.
To install only the headless OpenJDK 11 type:
sudo dnf install java-11-openjdk-headless
If you already installed java-11-openjdk-devel
, the headless package will be installed as a dependency.
Installing OpenJDK 8 #
Java 8, the previous Java LTS version, is still supported and widely used. If your application requires Java 8, you can install it by typing the following command:
sudo dnf install java-1.8.0-openjdk-devel
Verify the installation by checking the Java version:
java -version
The output should look something like this:
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
For minimal Java runtime, install the java-1.8.0-openjdk-headless
package.
Setting the Default Java Version #
If you installed multiple Java versions on your CentOS system, you can use the alternatives system to set which Java version will be used when you type java
in the terminal.
To check what Java version is set as the default one, type:
java -version
If you want to change the default version, use the alternatives
command:
sudo alternatives --config java
The output will look something like below:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.4.11-0.el8_0.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre/bin/java)
Enter to keep the current selection[+], or type selection number:
A list of all installed Java versions will be printed on the screen. Enter the number of the version you want to use as the default and press Enter
.
You may also want to change the default javac
version:
sudo alternatives --config java
javac
is a command utility for compiling Java programs.
Setting the JAVA_HOME
Environment Variable #
The JAVA_HOME
environment variable
is used by some Java applications to determine the Java installation location and specify which Java version should be used to run the application.
To set the JAVA_HOME
variable on a per-user basis, add it to the ~/.bashrc
or any other configuration file which is loaded when the user logs in. For a system-wide setting, use a script inside the /etc/profile.d
directory.
Assuming you want to set JAVA_HOME
to OpenJDK 8 add the following line, at the end of the file:
/etc/profile.d/java.sh
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"
For changes to take effect on your current shell, you can either log out and log in or use the source
command:
source /etc/profile.d/java.sh
Verify that the JAVA_HOME
environment variable was correctly set:
echo $JAVA_HOME
The output should show the path to the Java installation:
/usr/lib/jvm/java-1.8.0-openjdk
You can also set the JAVA_HOME
in the application configuration, systemd unit file, or on the command line when launching the program.
For example, to run Maven using Java 8 you would type:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk mvn --version
...
Java version: 1.8.0_222, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el8_0.x86_64/jre
...
Conclusion #
CentOS 8 supports two major Java versions, Java 8 and Java 11, which can be installed using the dnf
package manager.
If you have any questions, feel free to leave a comment.
[ad_2]
Source link