{"id":12668,"date":"2022-05-11T23:18:05","date_gmt":"2022-05-11T20:18:05","guid":{"rendered":"https:\/\/kifarunix.com\/?p=12668"},"modified":"2024-03-09T13:44:44","modified_gmt":"2024-03-09T10:44:44","slug":"install-java-11java-17java-18-on-debian-11","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-java-11java-17java-18-on-debian-11\/","title":{"rendered":"Install Java 11|Java 17|Java 18 on Debian 11"},"content":{"rendered":"\n<p>Follow through this tutorial to quickly learn how to install Java 11|Java 17|Java 18 on Debian 11.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#install-java-11-17-18-on-debian-11\">Install Java 11|17|18 on Debian 11<\/a><ul><li><a href=\"#install-open-jdk-11-open-jdk-17-open-jdk-18-on-debian-11\">Install OpenJDK 11|OpenJDK 17|OpenJDK 18 on Debian 11<\/a><ul><li><a href=\"#install-open-jdk-11-on-debian-11\">Install OpenJDK 11 on Debian 11<\/a><\/li><li><a href=\"#install-open-jdk-17-on-debian-11\">Install OpenJDK 17 on Debian 11<\/a><\/li><li><a href=\"#install-open-jdk-18-on-debian-11\">Install OpenJDK 18 on Debian 11<\/a><\/li><\/ul><\/li><li><a href=\"#how-to-set-default-java-version-on-debian-11\">How to Set Default Java Version on Debian 11<\/a><\/li><li><a href=\"#set-java-home-environment-variable\">Set JAVA HOME Environment Variable<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"install-java-11-17-18-on-debian-11\">Install Java 11|17|18 on Debian 11<\/h2>\n\n\n\n<p>There are two versions of <a href=\"https:\/\/www.oracle.com\/java\/\" target=\"_blank\" rel=\"noreferrer noopener\">Java<\/a>; OpenJDK and Oracle JDK;<\/p>\n\n\n\n<p>While both are products of Oracle, OpenJDK is an opensource version while Oracle JDK is a enterprise product that requires a commercial license to use.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-open-jdk-11-open-jdk-17-open-jdk-18-on-debian-11\">Install OpenJDK 11|OpenJDK 17|OpenJDK 18 on Debian 11<\/h3>\n\n\n\n<p>OpenJDK 11|OpenJDK 17|OpenJDK are available on the default Debian 11 Universe repositories.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-cache search openjdk | egrep '11|17|18'<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nlibjax-maven-plugin - Using the xjc goal with OpenJDK 11+\nopenjdk-11-dbg - Java runtime based on OpenJDK (debugging symbols)\nopenjdk-11-demo - Java runtime based on OpenJDK (demos and examples)\nopenjdk-11-doc - OpenJDK Development Kit (JDK) documentation\nopenjdk-11-jdk - OpenJDK Development Kit (JDK)\nopenjdk-11-jdk-headless - OpenJDK Development Kit (JDK) (headless)\nopenjdk-11-jre - OpenJDK Java runtime, using Hotspot JIT\nopenjdk-11-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)\nopenjdk-11-jre-zero - Alternative JVM for OpenJDK, using Zero\nopenjdk-11-source - OpenJDK Development Kit (JDK) source files\nopenjdk-11-jre-dcevm - Alternative VM for OpenJDK 11 with enhanced class redefinition\nopenjdk-17-dbg - Java runtime based on OpenJDK (debugging symbols)\nopenjdk-17-demo - Java runtime based on OpenJDK (demos and examples)\nopenjdk-17-doc - OpenJDK Development Kit (JDK) documentation\nopenjdk-17-jdk - OpenJDK Development Kit (JDK)\nopenjdk-17-jdk-headless - OpenJDK Development Kit (JDK) (headless)\nopenjdk-17-jre - OpenJDK Java runtime, using Hotspot JIT\nopenjdk-17-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)\nopenjdk-17-jre-zero - Alternative JVM for OpenJDK, using Zero\nopenjdk-17-source - OpenJDK Development Kit (JDK) source files\nuwsgi-plugin-jvm-openjdk-11 - Java plugin for uWSGI (OpenJDK 11)\nuwsgi-plugin-jwsgi-openjdk-11 - JWSGI plugin for uWSGI (OpenJDK 11)\nuwsgi-plugin-ring-openjdk-11 - Closure\/Ring plugin for uWSGI (OpenJDK 11)\nuwsgi-plugin-servlet-openjdk-11 - JWSGI plugin for uWSGI (OpenJDK 11)\n<\/code><\/pre>\n\n\n\n<p>There are no Java 18 packages available on the default Debian 11 repositories, as of this writing.<\/p>\n\n\n\n<p>If you want, you can install just JRE or JDK.<\/p>\n\n\n\n<p><em>&#8220;JDK is a superset of JRE, and contains everything that is in JRE, plus tools such as the compilers and debuggers necessary for developing applets and applications. JRE provides the libraries, the Java Virtual Machine (JVM), and other components to run applets and applications written in the Java programming language&#8221;<\/em>.<\/p>\n\n\n\n<p>We will install OpenJDK in this tutorial;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-open-jdk-11-on-debian-11\">Install OpenJDK 11 on Debian 11<\/h4>\n\n\n\n<p>To install OpenJDK 11 on Debian 11, execute the commands below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install openjdk-11-jdk<\/code><\/pre>\n\n\n\n<p>Confirm the version;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java --version<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>openjdk 11.0.15 2022-04-19\nOpenJDK Runtime Environment (build 11.0.15+10-post-Debian-1deb11u1)\nOpenJDK 64-Bit Server VM (build 11.0.15+10-post-Debian-1deb11u1, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-open-jdk-17-on-debian-11\">Install OpenJDK 17 on Debian 11<\/h4>\n\n\n\n<p>To install OpenJDK 17 on Debian 11, execute the commands below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install openjdk-17-jdk<\/code><\/pre>\n\n\n\n<p>Confirm the version;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java --version<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>openjdk 17.0.3 2022-04-19\nOpenJDK Runtime Environment (build 17.0.3+7-Debian-1deb11u1)\nOpenJDK 64-Bit Server VM (build 17.0.3+7-Debian-1deb11u1, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-open-jdk-18-on-debian-11\">Install OpenJDK 18 on Debian 11<\/h4>\n\n\n\n<p>As of this writing, Java 18 is not available on the default Debian 11 repositories. Thus, to install OpenJDK 18 on Debian 11;<\/p>\n\n\n\n<p>Download Java 18 DEB Binary from <a href=\"https:\/\/www.oracle.com\/java\/technologies\/downloads\/\" target=\"_blank\" rel=\"noreferrer noopener\">downloads page<\/a> and install as follows.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install wget -y<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/download.oracle.com\/java\/18\/latest\/jdk-18_linux-x64_bin.deb<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install .\/jdk-18_linux-x64_bin.deb<\/code><\/pre>\n\n\n\n<p>Confirm the version;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java --version<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>java 18.0.1.1 2022-04-22\nJava(TM) SE Runtime Environment (build 18.0.1.1+2-6)\nJava HotSpot(TM) 64-Bit Server VM (build 18.0.1.1+2-6, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"how-to-set-default-java-version-on-debian-11\">How to Set Default Java Version on Debian 11<\/h3>\n\n\n\n<p>If you have multiple versions of Java installed and want to set either Java 11|Java 17|Java 18 as the default, run the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo update-alternatives --config java<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nThere are 3 choices for the alternative java (providing \/usr\/bin\/java).\n\n  Selection    Path                                         Priority   Status\n------------------------------------------------------------\n* 0            \/usr\/lib\/jvm\/jdk-18\/bin\/java                  1811      auto mode\n  1            \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java   1111      manual mode\n  2            \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java   1711      manual mode\n  3            \/usr\/lib\/jvm\/jdk-18\/bin\/java                  1811      manual mode\n\nPress <enter> to keep the current choice[*], or type selection number:\n<\/code><\/pre>\n\n\n\n<p>From the output above, you can see that Java 18 is the current default Java version set.<\/p>\n\n\n\n<p>For example, I would enter number 2 if i want to set Java 17 as the default version.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>\nThere are 3 choices for the alternative java (providing \/usr\/bin\/java).\n\n  Selection    Path                                         Priority   Status\n------------------------------------------------------------\n  0            \/usr\/lib\/jvm\/jdk-18\/bin\/java                  1811      auto mode\n  1            \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java   1111      manual mode\n  2            \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java   1711      manual mode\n* 3            \/usr\/lib\/jvm\/jdk-18\/bin\/java                  1811      manual mode\n\nPress <enter> to keep the current choice[*], or type selection number: 2\nupdate-alternatives: using \/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java to provide \/usr\/bin\/java (java) in manual mode\n<\/code><\/pre>\n\n\n\n<p>To set another default version, rerun the <code><strong>sudo update-alternatives --config java<\/strong><\/code> command choose the enter the number of your selection and press ENTER from the above command output.<\/p>\n\n\n\n<p>If Java 18 path doesn&#8217;t show up in update-alternatives output, then install it as follows;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in java javac; do update-alternatives --install \/usr\/bin\/$i $i \/usr\/lib\/jvm\/jdk-18\/bin\/$i 1811; done<\/code><\/pre>\n\n\n\n<p>Then when you list again, it should be available;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>update-alternatives --list java<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"set-java-home-environment-variable\">Set JAVA HOME Environment Variable<\/h3>\n\n\n\n<p>Next you can set Java home environment variable of your Java selection by updating the path to the Java version.<\/p>\n\n\n\n<p>For example, current version of Java selected;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java --version<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>openjdk 17.0.3 2022-04-19\nOpenJDK Runtime Environment (build 17.0.3+7-Debian-1deb11u1)\nOpenJDK 64-Bit Server VM (build 17.0.3+7-Debian-1deb11u1, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<p>The path can be obtained by rerunning the command above or by just running the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>readlink -f \/usr\/bin\/java | sed \"s:jre\/bin\/java::\"<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java<\/code><\/pre>\n\n\n\n<p>Next, update the <strong>\/etc\/environment<\/strong> file to load the environment variables.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"JAVA_HOME=\/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java\" &gt;&gt; \/etc\/environment<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>source \/etc\/environment<\/code><\/pre>\n\n\n\n<p>To confirm the Java home environment variable setting, run the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo $JAVA_HOME<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/lib\/jvm\/java-17-openjdk-amd64\/bin\/java<\/code><\/pre>\n\n\n\n<p>Well, you are good to go. That is all on how to install Java 11|Java 17|Java 18 Debian 11.<\/p>\n\n\n\n<p>See other related guides by following the links below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-java-11java-17java-18-on-rocky-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Java 11|Java 17|Java 18 on Rocky Linux<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-java-11-java-17-java-18-on-ubuntu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Java 11|Java 17|Java 18 on Ubuntu 22.04<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Follow through this tutorial to quickly learn how to install Java 11|Java 17|Java 18 on Debian 11. Install Java 11|17|18 on Debian 11 There are<\/p>\n","protected":false},"author":1,"featured_media":10534,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121],"tags":[5116,5114,5117,5118,5115,5112,5113],"class_list":["post-12668","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-debian-11-install-java-17","tag-debian-11-jdk-18","tag-install-java-11-debian-11","tag-install-java-18-debian-11","tag-java-17-debian-11","tag-java-18-debian-11","tag-openjdk-18-debian-11","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/12668"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=12668"}],"version-history":[{"count":5,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/12668\/revisions"}],"predecessor-version":[{"id":20520,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/12668\/revisions\/20520"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/10534"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=12668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=12668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=12668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}