Как изменить версию java ubuntu

A short guide to change the default Java version on a Ubuntu machine.

If you are a Java developer, it is normal to have multiple Java versions installed on your machine to support different build environments. When a Java program is compiled, the build environment sets the oldest JRE version the program can support. Now, if you run this program on a Linux machine where an unsupported Java version is installed, you will encounter an exception.

For example, if your program is compiled on Java 11, it can’t be run on a machine where Java 8 is installed. But the good thing is you can install multiple Java versions on your machine and quickly change the default JRE version.

In this tutorial, I’ll explain how to change the default Java version on a Linux machine. First of all, run the following command to check the current Java version:

$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.10.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

As you can see above, the default Java version is currently set to OpenJDK JRE 1.8. Now, let’s run the following command to see all available Java versions:

$ sudo update-alternatives --config java

Running the above command displays a list of installed Java JDKs and JREs allowing you to select the one as you want to set as default.

There are 2 choices for the alternative java (providing /usr/bin/java).
  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number:

When prompted, select the Java version you would like to use. If the list does not include your desired Java version, you can always install it.

Now you can verify the default Java version as fellows:

$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.10.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.10.3, mixed mode, sharing)

That’s it. The default Java version is changed to OpenJDK 11.

Bonus: Use Script to Switch Java Version

If you frequently switch between different Java versions, it is a good idea to write a short script to automate the process. Here is the script I used for switching to OpenJDK 8 on my machine.

java8.sh

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/
export PATH=$PATH:$JAVA_HOME

Similarly, you can create scripts for other Java versions installed on your machine. The next step is to add these scripts as aliases to .bashrc file.

...
# Java Alias
alias java8='source /opt/java/switch/java8.sh'
alias java11='source /opt/java/switch/java11.sh'

Next, run the following command to load the changes of .bashrc file:

$ source ~/.bashrc

Now if you want to switch to Java 8, just type the following command in your terminal:

$ java8

Read Next: How to install Java on Ubuntu 18.04

✌️ Like this article? Follow me on
Twitter
and LinkedIn.
You can also subscribe to
RSS Feed.

В этом руководстве я покажу вам, как установить версию Java по умолчанию в Ubuntu / Debian.

Обычно в вашей системе Ubuntu или Debian запускается более одной версии Java – по причинам, связанным с разработкой или изменением требований приложений.

Предположим, что вы установили Java 11, и ранее у вас была установлена другая версия Java, вы можете выбрать версию Java по умолчанию для использования с помощью команды update-alternatives –config java.

Проверка версий Java, установленных в Ubuntu / Debian

Чтобы получить список установленных версий Java, выполните команду:

$ update-java-alternatives --list
 java-1.11.0-openjdk-amd64      1101       /usr/lib/jvm/java-1.11.0-openjdk-amd64
 java-8-oracle                  1081       /usr/lib/jvm/java-8-oracle

Получив список версий Java, установите версию по умолчанию, выполнив команду:

$ sudo update-alternatives --config java

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                         Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      auto mode
* 1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      manual mode
  2            /usr/lib/jvm/java-8-oracle/jre/bin/java       1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

Проверьте версию Java

$ java -version
 java version "1.8.0_191"
 Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
 Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

То же самое можно сделать для javac.

~$ sudo  update-alternatives --config javac

There is 1 choice for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                  Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/bin/javac   1081      auto mode
* 1            /usr/lib/jvm/java-8-oracle/bin/javac   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 

Если JAVA_HOME настроен неправильно, выполните команду ниже, чтобы установить текущую настройку Java по умолчанию.

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

Для JRE используйте:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

Постоянство может быть достигнуто путем размещения команды экспорта в вашем .bashrc или /etc/profile

Contents

  1. Introduction
  2. OpenJDK

    1. Installation of Java Runtime Environment
    2. Browser plugin
    3. OpenJDK v6 & v7 SDK (Software Development Kit)
    4. Alternative Virtual Machines
  3. Oracle Java 7

    1. Installing Oracle Java 7 by a script or from the command line
    2. Script (JRE only)
    3. Command line methods
  4. Oracle Java 8

    1. Command line installation methods
  5. OpenJDK Java 8

    1. Build it yourself
  6. OpenJDK Java 9

    1. Build it yourself
  7. Choosing the default Java to use
  8. IBM Java
  9. GNU Compiler for Java
  10. External link

Introduction

Java is a technology originally developed by Sun Microsystems, and acquired by Oracle. The following are the prevalent implementations:

  • OpenJDK: The OpenJDK project is an open-source implementation of the Java SE Platform. This is the default version of Java that is provided from a supported Ubuntu repository. Currently, there are two versions available, openjdk-6 and openjdk-7.

  • Oracle Java: Oracle Java is the proprietary, reference implementation for Java. This is no longer currently available in a supported Ubuntu repository. For more on this, please see here. However, one may install a supported version of Java (7 or 8) via Oracle’s website, or via the WebUpd8 PPA.

  • IBM Java: IBM Java is the preferred Java solution on PowerPC machines. It is a reimplementation of Java with a Just-In-Time Compiler. It is only available from IBM’s website.

  • GNU Compiler: A Java compiler made by GNU.

OpenJDK

Installation of Java Runtime Environment

  • Install the openjdk-6-jre package using any installation method.

  • Install the openjdk-7-jre package using any installation method.

Browser plugin

  • Install the icedtea6-plugin package using any installation method.

  • Install the icedtea-7-plugin package using any installation method.

This plugin works with the browsers: Epiphany, Firefox and Opera.

On Konqueror, go to Settings → Configure Konqueror… and from menu select Java & JavaScript, then tick Enable Java globally option.

OpenJDK v6 & v7 SDK (Software Development Kit)

In Java parlance the Java Development Kit (JDK) is sometimes used for SDK. (More about that here.)

  • Install the openjdk-6-jdk package using any installation method.

  • Install the openjdk-7-jdk package using any installation method.

Alternative Virtual Machines

Most users won’t need to worry about these, but if you use an architecture (e.g. PowerPC) that defaults to the Zero Virtual Machine (VM), then you may see a significant performance increase if you switch to:

  • JamVM: This is the default VM for ARM in 11.10. Install the icedtea-6-jre-jamvm package if available. If it is not, then compile instructions can be found here.

  • Cacao: Ensure the icedtea-6-jre-cacao package is installed.

  • Zero/Shark: Shark is a just-in-time (JIT) compiler for Zero. Install the openjdk-6-jre-zero package if available. On architectures which use the Zero VM as the default, the openjdk-6-jre-zero package contains the Shark VM.

To use a different VM other than the default, just add the appropriate option to the command you normally use. For example:

java -jamvm|-cacao|-shark|-zero -version

See the file /usr/lib/jvm/java-6-openjdk-powerpc/docs/README.Debian (or its equivalent) and the other documents in that directory for more information. Note, the IcedTea browser plugin will use the default VM (which you can change in the file /etc/java-6-openjdk/jvm.cfg).

Oracle Java 7

Oracle has declared Java 7 to be fit for general use. Currently there are no .deb packages available for Oracle Java 7. The raw binaries (without installer) can be downloaded directly from Oracle (Oracle Java download page).

Installing Oracle Java 7 by a script or from the command line

You can install the newest and secure Oracle Java 7 by a script (JRE only) or by a command line method. Both are easy to apply.

Script (JRE only)

Only supports Oracle (Sun) Java 7 JRE (which covers the needs of 99 % of all computer users). It pulls the packages from Oracle’s website and installs them, comparable to the way Adobe Flash Player is being installed. Plus it adds a dedicated repository, from which you’ll receive updates automatically.

  • http://www.duinsoft.nl/packages.php?t=en

Command line methods

Do-it-yourself methods, but very easy to apply (basically: you copy/paste some terminal commands).

  • Using webupd8.org’s strikingly simple method.

  • How do I install Oracle JRE 7?

  • http://sites.google.com/site/easylinuxtipsproject/java (for JRE, more extensive explanation of the commands than in askubuntu.com)

  • How do I install Oracle JDK 7?

  • Create a local apt Java repository

Using webupd8.org’s method has a great benefit in that the package will be updated as Oracle releases Java updates, which means that there will be no need to keep track of updates and reinstall them manually.

A note (hopefully temporary) about the Eugene San PPA for those who are attempting to use it and are having issues: As of the time of this entry, the eugenesan/java PPA is broken. If you have attempted to use it, you may do the following to remove it and use webupd8.org’s PPA method (above) instead

 sudo apt-get purge oracle-java7-installer*
 sudo apt-get install ppa-purge
 sudo ppa-purge ppa:eugenesan/java
 sudo apt-get clean
 sudo apt-get update

If the preceding does not work, you may try the following more aggressive method. Be aware, however, that it uses the rm command, which will completely remove files immediately and permanently from an important directory. Be extremely cautious.

sudo rm /var/lib/dpkg/info/oracle-java7-installer*
sudo apt-get purge oracle-java7-installer*
sudo rm /etc/apt/sources.list.d/*java*
sudo apt-get update

There is also an RFE opened on Oracle bugtracker to provide the debian package/installer for Java 7. Please consider voting for this RFE.

Oracle Java 8

Oracle has declared Java 8 to be fit for general use. Currently there are no .deb packages available for Oracle Java 8. The raw binaries (without installer) can be downloaded directly from Oracle (Oracle Java download page)

Command line installation methods

Do-it-yourself method, but very easy to apply (basically: you copy/paste some terminal commands).

  • Using webupd8.org’s strikingly simple method.

OpenJDK Java 8

Build it yourself

It’s actually also easy to build the Java 8 yourself directly from sources… Sounds scary? It really is surprisingly easy, and seriously literally takes about 15 minutes, using hgomez/obuildfactory, as described on vorburger.ch blog post.

OpenJDK Java 9

Build it yourself

Once you have a Java 8 bootstrap JDK, either from the binary Oracle package or one of the PPAs or one you built yourself, it’s then easy to build OpenJDK Java 9 yourself. Use the same as above, but make sure that you set the JDK_HOME and PATH to point to your Java 8 JDK, which is needed to build Java 9.

Choosing the default Java to use

If your system has more than one version of Java, configure which one your system uses by entering the following command in a terminal window

sudo update-alternatives --config java

This will present you with a selection that looks similar to the following (the details may differ for you):

There are 2 choices for the alternative java (providing /usr/bin/java).  
Selection Path Priority Status 
———————————————————— 
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 
1 /usr/lib/jvm/jre1.7.0/jre/bin/java 3 manual mode  

Press enter to keep the current choice[*], or type selection number: 1

IBM Java

IBM provide JRE and SDK binaries for a number of architectures, including PowerPC. These are available via the IBM Downloads Page once you have registered.

There are two types of ‘InstallAnywhere’ package available to you: the ‘Archive/tgz’ only extracts the files to your system, whereas the ‘Installable’ package supposedly also configures your system. You can use either, both require additional configuration with Ubuntu. The ‘Installable’ package also provides an uninstall option.

To run the downloaded file use the following commands:

chmod a+x ibm-java-ppc-jre-6.0-10.1.bin
sudo ./ibm-java-ppc-jre-6.0-10.1.bin

This launches an interactive program that guides you through the installation options. Extract the file to the directory of your choice (for example /usr/lib/jvm/java-6-ibm-powerpc).

Once completed, you then need to tell the system where to find the new java commands. If you only have IBM Java installed then you can define an environment variable to do this. For example, add the following line to your .bashrc file in your home directory.

export PATH=/usr/lib/jvm/java-6-ibm-powerpc/bin:/usr/lib/jvm/java-6-ibm-powerpc/jre/bin:$PATH

If you also have openjdk installed then you’ll need to update the java alternatives:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-6-ibm-powerpc/jre/bin/java" 1
sudo update-alternatives --set java /usr/lib/jvm/java-6-ibm-powerpc/jre/bin/java

You’ll need to repeat this for every command you need. For the mozilla plugin you can use:

sudo update-alternatives --install /usr/lib/mozilla/plugins/mozilla-javaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-6-ibm-powerpc/jre/lib/ppc/libnpjp2.so 1
sudo update-alternatives  --config mozilla-javaplugin.so

Further guidance can be found in the IBM documentation (including a different way to link the plugin).

If you don’t use the mozilla plugin frequently then you can disable it for security. You can do this through the Firefox menus or there are Firefox extensions you can use to automate this.

To control which Java the Konqueror web browser uses, go to your KDE system settings. Select Internet & Network -> Web Browser -> Java & JavaScript, and change the Path to Java executable to either /usr/lib/jvm/java-6-ibm-powerpc/bin/java or java (without any quotes).

Test the installation at the Sun Java test webpage and using the command:

java -version

Note, there are old PowerPC deb packages still in medibuntu (keep clicking refresh if you get 403 forbidden). These are probably the easiest way to install, although they are now lacking security updates, plus the latest browser plugin. For these reasons it is strongly advised that you download a newer Service Refresh Fix Pack directly from the IBM Downloads Page.

You may have to install libstdc++5 and libgtk1.2 packages to use old versions of IBM Java. If you installed a 1.4.2 version, and your processor is not a G5, you may have to perform another step to get it to work. For a G3 or G4, use the following command:

        sudo sh -c 'echo "JITC_PROCESSOR_TYPE=6" >> /etc/environment'

For a 604e or 603e, instead use:

        sudo sh -c 'echo "JITC_PROCESSOR_TYPE=5" >> /etc/environment'

You will have to log out or restart the computer for this to take effect.

GNU Compiler for Java

Install the java-gcj-compat-headless package using any installation method.

To install the development environment, install the java-gcj-compat-dev package using any installation method.

GCJ is a front end to the GCC compiler which can natively compile both Java(tm) source and bytecode files. The compiler can also generate class files. Gcjwebplugin is a little web browser plugin to execute Java applets.

It is targeted for Mozilla and compatible browsers that support the NPAPI. Others include the Eclipse Java Compiler, which is maintained by the Eclipse Foundation. Eclipse is an open-source Integrated development environment (IDE) written primarily in Java. The Eclipse open source community has over 60 open source projects.

External link

  • Oracle Java 6 goes EoL, and no longer receives Public Updates.

  • Official website of Oracle Java

  • Official website of OpenJDK

  • Developer support about Java

  • IcedTea Browser Plugin


CategorySoftware CategoryDocumentation

Вступление

Java — популярный язык разработки, на котором написано большое количество приложений, поэтому часто требуется запускать программное обеспечение на Java. Для этого Java необходимо установить и определить переменную JAVA_HOME. В этой инструкции расскажем, как выбрать версию Java и как ее поставить на Ubuntu 20.04.

Перед установкой

Мы будем устанавливать Java на облачном сервере с ОС Ubuntu 20.04. Чтобы заказать сервер, откройте панель управления Selectel. Перейдите в раздел Облачная платформаСерверы. Нажмите Создать сервер.

создание сервера

В качестве источника для сервера выберите готовый образ Ubuntu 20.04 LTS 64-bit.

новый сервер с готовым образом ubuntu

Добавьте подсеть с новым плавающим IP-адресом. Он нужен для подключения к облачному серверу по SSH.

подсеть с плавающим адресом

Укажите остальные настройки, проверьте стоимость сервера и нажмите Создать. Подробная инструкция по созданию сервера есть в базе знаний.

После создания сервера подключитесь к нему по SSH с помощью команды:

    ssh root@server_IP

В качестве server_IP используйте плавающий адрес, присвоенный серверу. Плавающий IP-адрес можно посмотреть на странице сервера вкладка Порты. Для подключения понадобится пароль для root, его можно найти на вкладке Консоль.

Облачные серверы Selectel

Читать подробнее

Сейчас версии Java выходят приблизительно раз в полгода. На момент подготовки статьи самая свежая версия — Java 18.

Чем JRE отличается от JDK

  • JRE — среда выполнения, Java Runtime Environment. Наиболее важный компонент JRE — java, он запускает JVM (виртуальную машину Java). JVM же запускает ранее скомпилированные приложения Java, поэтому для создания новых программ JRE недостаточно.
  • JDK — Java Development Kit, полноценный SDK, набор для разработки приложений на Java. В JDK входит JRE, компилятор Java (javac) и разные утилиты и инструменты (например, отладчик jdb).

Большое количество приложений на Java требуют установленную JRE для запуска. Если вам требуется только запускать приложения на Java, подойдет JRE.

Если вы планируете разрабатывать приложения, установите JDK. Часто вместо Java используется понятие JDK.

OpenJDK или Oracle JDK

Исходный код Java существует в проекте OpenJDK. Для работы нужны сборки, совместимые со спецификациями Java SE.

Есть две сборки Java:

  • OpenJDK — опенсорсная версия, поддерживается Oracle и сообществом разработчиков;
  • Oracle JDK — проприетарная сборка, выпускается и поддерживается компанией Oracle.

Разницы между свежими релизами Oracle JDK и OpenJDK практически нет. Основное отличие между ними — это лицензирование. С 2019 года для коммерческого использования Oracle JDK нужно покупать лицензию, при этом Oracle будет поставлять обновления. Для некоммерческих целей Oracle JDK бесплатна. OpenJDK можно использовать бесплатно в любых целях.

Установка Open JDK

Установка Open JDK выполняется через apt. Перед установкой обновите списки пакетов:

    sudo apt update

Проверьте, установлена ли Java на сервере:

    java -version

Если Java не установлена, в выводе будут предложены доступные версии и команды для их установки:

    Command 'java' not found, but can be installed with:

apt install openjdk-11-jre-headless  # version 11.0.15+10-0ubuntu0.20.04.1, or
apt install default-jre              # version 2:1.11-72
apt install openjdk-13-jre-headless  # version 13.0.7+5-0ubuntu1~20.04
apt install openjdk-16-jre-headless  # version 16.0.1+9-1~20.04
apt install openjdk-17-jre-headless  # version 17.0.3+7-0ubuntu0.20.04.1
apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1~20.04

Можно установить дефолтную версию Java (поставляется с Ubuntu) или поставить отдельные версии.

Установка версии по умолчанию

По умолчанию в стандартные репозитории Ubuntu 20.04 входит Open JDK 11. Чтобы ее установить, используйте:

    sudo apt install default-jre

Проверьте, установилась ли версия:

    java -version

Вывод команды:

    openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)

JRE полностью подходит для запуска любого ПО Java. Но, как мы говорили ранее, для компиляции помимо JRE может понадобиться и JDK. Чтобы установить дефолтную версию JDK (при этом установится JRE):

    sudo apt install default-jdk

Проверьте версию установившегося компилятора javac:

    javac -version

Результат:

    javac 11.0.15

Установка определенной версии OpenJDK

Если вы хотите поставить определенную версию OpenJDK, то укажите версию в команде.

Например, для установки одиннадцатой версии:

    sudo apt install openjdk-11-jdk

Например, можно установить OpenJDK 8, на которой работает большое количество приложений:

    sudo apt install openjdk-8-jdk

Посмотрите, какая версия Java установилась:

    java -version

Установка Oracle Java (Oracle JDK) 

Перейдите на официальный сайт Oracle, чтобы скачать архив нужной версии. Мы будем скачивать Java SE Development Kit 16, на момент выпуска статьи это архивный релиз для Java SE Platform.

Скачайте Linux x64 Compressed Archive (для примера мы скачаем архив не на сервер, а на локальный компьютер):

скачивание архива

Отключитесь от сервера и скопируйте архив на сервер:

    scp Downloads/jdk-16_linux-x64_bin.tar.gz root@server_ip:~

Downloads/jdk-16_linux-x64_bin.tar.gz — путь до архива на вашем компьютере.

Когда загрузка закончится, подключитесь по SSH к облачному серверу. Уже на сервере распакуйте архив:

    tar zxvf jdk-16_linux-x64_bin.tar.gz

Добавьте PPA-репозиторий с установщиком Java — linuxuprising:

    sudo add-apt-repository ppa:linuxuprising/java

В выводе появится информация о репозиториях и версиях. Нажмите Enter для продолжения.

Обновите списки пакетов:

    sudo apt update

sУстановите Oracle JDK 18:

    sudo apt install oracle-java16-installer --install-recommends

Подтвердите соглашение о лицензии, прокрутив до конца и нажав Ok:

лицензионное соглашение

Выберите Yes:

принять соглашение

Посмотрите, какая версия установилась:

    java -version

Ответ будет выглядеть так:

    java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)


Проверьте, правильная ли версия компилятора javac установилась:

    javac -version

Пример результата:

    javac 16.0.1

Переключение между несколькими версиями Java

Вы можете установить или изменить дефолтную версию Java, если, например, на сервере установлено несколько версий одновременно:

    update-alternatives --config java

В выводе будут показаны все установленные версии, активная будет помечена звездочкой:

    There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 2            /usr/lib/jvm/java-16-oracle/bin/java             1091      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press  to keep the current choice[*], or type selection number: 

Нажмите Enter, чтобы оставить текущий выбор, или введите номер из столбца Selection той версии, которую хотите сделать дефолтной версией.

То же самое можно сделать с версиями javac:

    update-alternatives --config javac

Переменная JAVA_HOME

Множество приложений на Java используют JAVA_HOME. Это переменная окружения — она указывает на путь, по которому установлена Java.

Сначала определите путь, по которому установлена Java:

    sudo update-alternatives --config java

В выводе будут все установленные версии и их директории:

    There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 2            /usr/lib/jvm/java-16-oracle/bin/java             1091      manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press  to keep the current choice[*], or type selection number:

В выводе показаны следующие пути:

  • OpenJDK 8 — /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java;
  • OpenJDK 11 — /usr/lib/jvm/java-11-openjdk-amd64/bin/java;
  • Oracle Java 16 — /usr/lib/jvm/java-16-oracle/bin/java.

Скопируйте путь до активной версии, затем нажмите Enter. В нашем примере активна Oracle Java 16.

Откройте директорию /etc/environment (это предпочтительный путь до JAVA_HOME) в редакторе nano:

    sudo nano /etc/environment

Добавьте строку с JAVA_HOME в конце файла. При этом не включайте в путь часть с bin/:

    JAVA_HOME="/usr/lib/jvm/java-16-oracle"

Введите Ctrl+X, затем Y+Enter — это сохранит файл и закроет редактор. Путь будет заменен.

Загрузите переменные:

    source /etc/environment

Проверьте, что путь до JAVA_HOME задан верно:

    echo $JAVA_HOME

В выводе должна быть именно эта директория:

    /usr/lib/jvm/java-16-oracle

Удаление Java

OpenJDK

Чтобы полностью удалить все версии OpenJDK, которые были установлены, используйте команду:

    sudo apt purge openjdk*

Для удаления только конкретной версии нужно ее указать, например:

    sudo apt purge openjdk-11*

или

    sudo apt purge openjdk-8*

Oracle Java

Чтобы полностью удалить Oracle Java:

    sudo apt purge oracle-java*

Для удаления конкретной версии, например, версии 11:

    sudo apt purge oracle-java11-installer

Теперь можно удалить PPA-репозиторий:

    sudo add-apt-repository --remove ppa:linuxuprising/java

Заключение

В этой инструкции мы рассмотрели отличия версий Java. Посмотрели, как можно запустить виртуальную машину Java (JVM) и как поставить в Ubuntu сразу несколько версий Java.

In this article, we’ll show you how to upgrade Java 8 to Java 11 on Ubuntu 20.04

Step 1: Check the current installed Java version 

$ java -version

Sample output:

sysadminxpert@Ubuntu:~$ java -version

openjdk version "1.8.0_312"

OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)

OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

Step 2: Install Java 11 on ubuntu 

$ sudo apt install openjdk-11-jdk

How to Upgrade Java 8 to Java 11 on Ubuntu 20

Sample output:

sysadminxpert@Ubuntu:~$ sudo apt install openjdk-11-jdk
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless
Suggested packages:
openjdk-11-demo openjdk-11-source visualvm fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei
The following NEW packages will be installed:
openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless
0 upgraded, 4 newly installed, 0 to remove and 613 not upgraded.
Need to get 263 MB of archives.
After this operation, 408 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB]
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB] 
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB] 
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB] 
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB] 
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB] 
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [37.3 MB] 
Get:2 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jre amd64 11.0.15+10-0ubuntu0.20.04.1 [175 kB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.15+10-0ubuntu0.20.04.1 [223 MB] 
Get:4 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 openjdk-11-jdk amd64 11.0.15+10-0ubuntu0.20.04.1 [2,573 kB] 
Fetched 22.5 MB in 29min 54s (12.5 kB/s) 
Selecting previously unselected package openjdk-11-jre-headless:amd64.
(Reading database ... 146978 files and directories currently installed.)
Preparing to unpack .../openjdk-11-jre-headless_11.0.15+10-0ubuntu0.20.04.1_amd64.deb ...
Unpacking openjdk-11-jre-headless:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
Selecting previously unselected package openjdk-11-jre:amd64.
Preparing to unpack .../openjdk-11-jre_11.0.15+10-0ubuntu0.20.04.1_amd64.deb ...
Unpacking openjdk-11-jre:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
Selecting previously unselected package openjdk-11-jdk-headless:amd64.
Preparing to unpack .../openjdk-11-jdk-headless_11.0.15+10-0ubuntu0.20.04.1_amd64.deb ...
Unpacking openjdk-11-jdk-headless:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
Selecting previously unselected package openjdk-11-jdk:amd64.
Preparing to unpack .../openjdk-11-jdk_11.0.15+10-0ubuntu0.20.04.1_amd64.deb ...
Unpacking openjdk-11-jdk:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
Setting up openjdk-11-jre-headless:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Setting up openjdk-11-jre:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
Setting up openjdk-11-jdk-headless:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jar to provide /usr/bin/jar (jar) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/javac to provide /usr/bin/javac (javac) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/javap to provide /usr/bin/javap (javap) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jps to provide /usr/bin/jps (jps) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/rmic to provide /usr/bin/rmic (rmic) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jaotc to provide /usr/bin/jaotc (jaotc) in auto mode
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode
Setting up openjdk-11-jdk:amd64 (11.0.15+10-0ubuntu0.20.04.1) ...
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu2) ...
sysadminxpert@Ubuntu:~$

Step 3: Set the default Java version on Ubuntu 

If multiple java version is installed on your system then you need to follow the below steps to set a default java version.

Using the update-alternatives command to change the default Java version

$ sudo update-alternatives --config java

How to Upgrade Java 8 to Java 11 on Ubuntu 20

Sample output:

sysadminxpert@Ubuntu:~$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode
* 2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in auto mode
sysadminxpert@Ubuntu:~$ 

Verify java version

$ java -version

How to Upgrade Java 8 to Java 11 on Ubuntu 20

Sample output:

sysadminxpert@Ubuntu:~$ java -version

openjdk version "11.0.15" 2022-04-19

OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)

OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)

sysadminxpert@Ubuntu:~$ 

Step 4: Configure JAVA_HOME in Ubuntu 

Add below line in ~/.bashrc

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")

Step 5: Verify JAVA_HOME path in Ubuntu

source ~/.bashrc

echo $JAVA_HOME

Sample Output:

sysadminxpert@Ubuntu:~$ echo $JAVA_HOME

/usr/lib/jvm/java-11-openjdk-amd64

End of article. We have shown you how to upgrade Java 8 to Java 11 on Ubuntu 20.04

See also:

List of monitoring tools 

Linux Blogs

AWS Cloud Blogs

Database Blogs

DevOps Blogs

Interview Questions & Answers

Docker Blogs

Google Cloud Blogs

I followed all the instructions stated at this question, but am encountering some problems with the last part of it.

I actually have version 6.22 of java and would like to update to version 6.30.

So after moving the extracted directory java-6-oracle into /usr/lib/jvm I do not know what to do, since the script that is pointed out in the answer above updates from java 5 to java 6.

For sake of clearness here is output if I do an ls in dir /usr/lib/jvm:

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

What should I do now?


ADDED PART

Under the suggestion of @fossfreedom I ran the script anyway and actually it updated the java version.

In fact if I run command java -version output will be the following:

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

There is still a problem, if Irun javac -version it gives me the old version installed:

$ javac -version
javac 1.6.0_22

And if I use the tester at this link it will tell me that version is

Java Version 1.6.0_22 from Sun Microsystems Inc.

What’s going wrong?

It seems that Java Runtime Environment has updated, but Java Compiler and Java plugin for browser have not.

How can I update them?


OTHER ADDED PART

sudo update-alternatives --config java will return following output

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

these makes sense with the fact that JRE is correctly updated to version 6.31, issues are on Java Compiler and Java browser plugin.

Any ideas?

Java — это очень популярный язык программирования, разработанный в компании Sun Microsystems, ныне принадлежащая корпорации Oracle. Сейчас Java используется для создания различных прикладных программ, веб-приложений, серверных приложений и многого другого. Основная особенность этого языка — это максимальная кроссплатформенность.

Программа, написанная для одной системы, будет без проблем работать в другой. Но для программ, написанных на Java, нужна специальная виртуальная Java-машина. В этой статье будет рассмотрена установка Java в Ubuntu 20.04 для разных версий программы. А также попытаемся разобраться во всём её многообразии.

Сейчас разработкой Java занимается компания Oracle. До недавнего времени существовало две основных версии виртуальной машины Java:

  • Старая седьмая версия;
  • Новая восьмая, используемая в большинстве программ.

Платформа распространялась в двух форматах:

  • Проприетарном (Oracle Java) — с дополнительными возможностями и поддержкой;
  • Открытом (Open JDK) — полностью открытая версия.

Обе платформы выпускались компанией Oracle, но вторая поддерживалась сообществом разработчиков, а первая самой компанией. Сейчас же ситуация немного изменилась. Теперь компания выпускает новую версию Java каждые полгода. Сначала вышли версии Java 9, 10, 11, 12, 13, 14, 15, 16 и на конец последней актуальной версией на октябрь 2021 года является 17 версия. Длительность срока поддержки этих версий тоже короткая — всего семь месяцев. Поэтому большинство программ остались работать на Java 8 и на Java 11 так как данные версии имеют выпуск LTS – то есть Long Term Support (долгосрочная поддержка) и будут поддерживаться вплоть до Декабря 2030 года (версия Java 8) и до Сентября 2026 года. В большинстве случаев именно эти версии и необходимо устанавливать.

Если вы разработчик, и хотите получить самую свежую версию Java, то стоит устанавливать Java 11. Это LTS-версия, которая будет поддерживаться до 2026 года. В ней было очень много улучшений и изменений, как в плане синтаксиса, так и для распространения. Теперь проприетарная версия доступна бесплатно только для некоммерческого использования. Для коммерческих целей необходимо заплатить или же устанавливать OpenJDK.

В Ubuntu и в других дистрибутивах Java поставляется в двух редакциях:

  • JDK или Java Development Kit — содержит полную версию Java, необходимую для разработки на этом языке;
  • JRE или Java Runtime Environment — содержит только окружение для выполнения программ.

Выбор остается полностью за пользователем. Если нет необходимости что-то компилировать на Java, то будет достаточно установки JRE. Далее будет рассмотрена установка Java.

Установка Java 8 в Ubuntu 20.04

1. Как установить OpenJDK в Ubuntu 20.04

Если необходимо установить OpenJDK в Ubuntu, то никаких сторонних репозиториев подключать не нужно. Восьмая версия платформы есть в официальном репозитории Ubuntu 20.04. Чтобы установить JDK на Ubuntu необходимо выполнить команду:

sudo apt -y install openjdk-8-jdk

Fk0SQVOuDklDugUGXVVb2SCUUabqQSvcEea6pXUX1GYCMDfL4e3d1r16D662Xh+c1lixQU1B6DKi2P8P3uXRcBd6FkQAAAAASUVORK5CYII=

Для установки JRE в Ubuntu необходимо выполнить команду

sudo apt -y install openjdk-8-jre

KTQnlTQpAAAAAElFTkSuQmCC

После этого можно узнать версию Java:

java -version

z+VhEzVlRqPOwAAAABJRU5ErkJggg==

Версия 1.8.0 эквивалентна версии 8.

2. Как установить Oracle Java 8 в Ubuntu 20.04

Единственный рабочий способ получить самую свежую версию Java — скачать её из официального сайта. Необходимо выбрать раздел Linux и найти пакет с именем jdk-8u311-linux-aarch64.tar.gz:

D7GgZhvZ1heuAAAAAElFTkSuQmCC

Далее необходимо поставить галочку напротив пункта I reviewed and accept the Oracle Technology Network License Agreement for Oracle Java SE тем самым подтверждая принятия условия лицензионного соглашения.

Fese28Keg6QAAAAASUVORK5CYII=

Для скачивания файла необходимо войти в свою учетную запись Oracle или создать новую, только после этого начнется загрузка выбранной версии. После завершения загрузки необходимо создать директорию /usr/lib/jvm/:

sudo mkdir /usr/lib/jvm/

Распакуйте в неё скаченный ранее архив:

sudo tar -zxvf jdk-8u311-linux-aarch64.tar.gz -C /usr/lib/jvm/

Добавьте исполняемый файл Java к списку утилиты для управления версиями Java:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java

После этого активируйте данную версию:

sudo update-alternatives --config java

ldr67e7Mm4Rf4fR+V55HKx1mt6K4hdOmZ7ecbeIqCCPeOSDBwmQQHjGgZjzpHDnlT7csZ4i9PKET3HrDEdVTpQXqSgRnqheFuWjslVrdEHj7y7XnBNURCPhyBYYS0MB9hO2Pf9mN6YMIoOOkoXx5yiTKY0mlWanjkME9Og2gh5PEmMgyiacAHGEt+ERQgaBPyBghTCkUXaXY1xPYvFJjQhARjOTjnuh+47pgq6pEpG9EQo+7iChzEHQ74yukLqN7YARaYtDlmdvx5ZrcjoQD6svBjuQzlW6mHHBq2Uo+BTbzh56U1lvB5Bg5vT8elfiMAizvTkvMAAAAAASUVORK5CYII=

Введите цифру 1 для выбора версии Java. В данном случае будет выбрана ранее скачанная версия Oracle Java 8.

Некоторым приложениям необходим путь к исполняемым файлам Java в переменных окружения. Создайте файл /etc/profile.d/javajdk.sh:

sudo vi /etc/profile.d/java8jdk.sh

И впишите следующее содержимое:

export PATH=$PATH:/usr/lib/jvm/jdk1.8.0_311/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_311
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_311/jre
export J2SDKDIR=/usr/lib/jvm/jdk1.8.0_311/
export J2REDIR=/usr/lib/jvm/jdk1.8.0_311/jre/

Чтобы загрузить эти переменные необходимо выполнить команду:

source /etc/profile.d/java8jdk.sh

После этого проверьте версию Java:

java -version

wEQz1H8lfyCjAAAAABJRU5ErkJggg==

Установка Java 11 в Ubuntu 20.04

1. Как установить OpenJDK 11 в Ubuntu 20.04

Java 11 — это последняя на данный момент версия Java c длительной и актуальной поддержкой. Она будет поддерживаться до 2026 года. Свободная версия есть в официальных репозиториях Ubuntu, поэтому установить её можно без проблем:

sudo apt -y install openjdk-11-jdk

3pRcj4t80k8AAAAASUVORK5CYII=

Или можно установить JRE-редакцию, предназначенную только для запуска программ:

sudo apt -y install openjdk-11-jre

otoJXUWmqfyBrqXCZCQN+qwxtYDBfFBDAlJs5JdtsuYTO3bAuSXxHpWjx8Z3XEQJ6fIClc3OOFCncHZA40BjY9PkxJItgXGwTGzVyBO2czg7hF+UUtL6v7lhPoqt1+eQAAAAAElFTkSuQmCC

После установки необходимо переключиться на 11 версию. Для этого выполните команду:

sudo update-alternatives --config java

Введите необходимую цифру для выбора Java 11. В данном случае будет выбрана цифра 0:

U2T4TXdRiz9DAgbScS6xKTnhmPr8kaKRJtvhmY8ob7D39v3GRQ47ZykDaAAAAAElFTkSuQmCC

После этого проверьте версию Java:

java -version

UilMADdZHP8P4AELoRJov8AAAAAASUVORK5CYII=

2. Как установить Oracle Java 11 в Ubuntu 20.04

Для установки проприетарной версии Java от корпорации Oracle необходимо скачать пакет JDK с официального сайта Oracle и добавить репозиторий для установки Java. Если просто попытаться выполнить команду для установки минуя скачивание JDK apt выдаст ошибку Oracle JDK 11 is NOT installed.

Для начала необходимо скачать архив с JDK с официального сайта Oracle. Необходимо выбрать раздел Linux и найти пакет с именем jdk-11.0.13_linux-x64_bin.tar.gz:

Далее необходимо поставить галочку напротив пункта I reviewed and accept the Oracle Technology Network License Agreement for Oracle Java SE тем самым подтверждая принятия условия лицензионного соглашения. Для скачивания файла необходимо войти в свою учетную запись Oracle или создать новую, только после этого начнется загрузка архива.

Необходимо создать директорию /var/cache/oraclejdk11-installerlocal/ и скопировать туда скачанный архив:

sudo mkdir -p /var/cache/oracle-jdk11-installer-local/

sudo cp /home/alex/Downloads/jdk-11.0.13_linux-x64_bin.tar.gz /var/cache/oracle-jdk11-installer-local/

Далее необходимо добавить репозиторий:

sudo add-apt-repository ppa:linuxuprising/java

j9jis1mymyevQAAAABJRU5ErkJggg==

При появлении фразы Press [ENTER] to continue or Ctrl-c to cancel adding it. нажмите на клавишу Enter для продолжения установки репозитория. Далее установите Oracle Java 11 при помощи команды:

sudo apt -y install oracle-java11-set-default-local

При появлении окна с лицензией нажмите на клавишу Tab далее нажмите на клавишу Enter:

As44D6HhY7UDAAAAAElFTkSuQmCC

В следующем окне снова нажмите на клавишу Tab и на клавишу Enter:

p87Dx1Dwb6ZjwAAAABJRU5ErkJggg==

После этого проверьте версию Java:

java -version

h+0sw5WK1k9UwAAAABJRU5ErkJggg==

Выбор версии Java

Если в системе установлено несколько версий Java, необходимо выбрать, какая из них будет использоваться по умолчанию. Для этого используется утилита update-java-alternatives. Для просмотра списка всех установленных версий необходимо выполнить команду:

sudo update-java-alternatives --list

H+6qyOyBvkBtAAAAAElFTkSuQmCC

Далее установите необходимую версию при помощи опции –set и задав полное имя Java:

sudo update-java-alternatives --set java-1.11.0-openjdk-amd64

Удаление Java из Ubuntu 20.04

Чтобы удалить ненужную версию Java, выполните одну из перечисленных ниже команд для удаления конкретной версии или выполните все команды поочередно для удаления всех версий Java:

sudo apt -y purge oracle-java11-installer
sudo apt purge openjdk-11*
sudo apt purge openjdk-8*

Далее можно удалить PPA-репозиторий:

sudo add-apt-repository --remove ppa:linuxuprising/java

Выводы

В этой статье была показана установка Java на Ubuntu 20.04. Теперь после прочтения данной статьи вы знаете, как устанавливать Java и как выбирать необходимую версию по умолчанию. Надеюсь, информация из статьи была вам полезной.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Если вы хотите узнать, как установить Java в Ubuntu быстро и без трудностей — используйте нашу инструкцию. Мы поможем разобраться, какая версия Java лучше, и рассмотрим оптимальные способы установки Java в Ubuntu.

Java — это объектно-ориентированный язык веб-программирования. Он применяется при создании сайтов, десктопных программ, серверных и веб-приложений. Обычно код языка Java исполняется в окне браузера на открытой странице сайта. Рассмотрим версии Java и способы их установки в Ubuntu.

Какие версии Java существуют

Когда-то Java имела всего две стабильные версии — Java 7 и Java 8. Версия Java 8 регулярно обновлялась, поэтому много лет была популярна в разработке. Например, на ней написаны приложения для Android, компьютерная игра Minecraft и социальная сеть Twitter. В настоящее время компания Oracle выпускает новые версии каждые полгода, но к ним выходит минимальное количество обновлений.

Любую версии Java можно установить в одном из форматов распространения. Основные форматы распространения дистрибутивов Java:

  1. Oracle Java (Oracle JDK) — бесплатный для разработки, но платный при использовании в рабочей среде. Включает дополнительные возможности и техподдержку.

  2. Open JDK — открытая бесплатная версия. Представлена в двух редакциях:

  • JRE (Java Runtime Environment) — содержит компоненты, предназначенные только для запуска Java-программ в Linux.
  • JDK (Java Development Kit) — полная версия, которая включает компоненты, предназначенные для запуска, компиляции и разработки Java-программ. JDK по умолчанию содержит в себе редакцию JRE.

Описанные форматы подойдут для любой версии семейства Linux Ubuntu и будут работать как на десктопах, так и на веб-серверах. Мы разберем оба способа установки Java и в разных вариантах редакций.

Важно

Перед установкой Java проверьте, что она ещё не установлена на вашем сервере, командой: java —version.

В примере ниже установлена версия OpenJDK 11.0.7:



установка
Ubuntu Java install

Как установить OpenJDK

Рассмотрим, как установить самую свежую и более старые версии Java.

Чтобы автоматически установить самую свежую версию OpenJDK (она уже есть в официальном репозитории Ubuntu):

  1. 1.

  2. 2.

    Установите последнюю версию Java Runtime Environment (JRE):

    sudo apt install default-jre

    Или Java Development Kit (OpenJDK), которая уже включает в себя JRE:

    sudo apt install default-jdk
  3. 3.

    Убедитесь, что Java установлена, и проверьте версию:

Готово, вы установили самую свежую версию.

Чтобы установить конкретную версию OpenJDK, следуйте инструкции ниже:

  1. 1.

  2. 2.

    Установите нужную версию OpenJDK:

    sudo apt install openjdk-8-jdk

    Где 8 — версия Java.

    Вместо OpenJDK вы можете установить только JRE:

    sudo apt install default-8-jre
  3. 3.

    Убедитесь, что Java установлена, и проверьте установленную версию:

Готово, вы установили нужную версию.

Как установить Oracle Java

Рассмотрим, как установить свежую и старую версии Java. Для установки свежей версии Java (11 или 12):

  1. 1.

  2. 2.

    Добавьте PPA-репозиторий:

    sudo add-apt-repository ppa:linuxuprising/java
  3. 3.

    Снова обновите пакеты apt:

  4. 4.

    Установите Java:

    sudo apt install oracle-java12-installer

    Где 12 — версия Java.

  5. 5.

    Убедитесь, что Java установлена, и проверьте версию:

Готово, вы установили Java 12.

Для установки старой версии Java 8:

  1. 1.

  2. 2.

    Добавьте PPA-репозиторий:

    sudo add-apt-repository ppa:webupd8team/java
  3. 3.

    Снова обновите пакеты apt:

  4. 4.

    Установите Java:

    sudo apt install oracle-java8-installer

    Где 8 — версия Java.

  5. 5.

    Убедитесь, что Java установлена, и проверьте версию:

Готово, вы установили Java 8.

Как назначить версию Java по умолчанию

На одном сервере может быть установлено несколько версий Java. Рассмотрим, как сделать нужную вам версию версией по умолчанию:

  1. 1.

    Посмотрите установленные версии:

    update-alternatives --config java
  2. 2.

    Введите номер версии, которую вы хотите сделать версией по умолчанию, и нажмите Enter.

    В примере была выбрана версия с порядковым номером 1. При повторном вызове команды на скриншоте видно, что она стала версией по умолчанию (отмечена «звёздочкой»):



    =810x403

Готово, вы назначили нужную версию java по умолчанию.

Как установить переменную окружения java_home

Для работы некоторых программ на java нужно установить переменную окружения java_home. для этого:

  1. 1.

    Определите, в какой директории установлена версия java, которая используется по умолчанию:

    sudo update-alternatives --config java

    В выводе ниже видно, что директория версии по умолчанию (с порядковым номером ноль) — /usr/lib/jvm/java-11-openjdk-amd64/bin/java:



    =813x193

  2. 2.

    Скопируйте полный путь.

  3. 3.

    Откройте файл:

    sudo nano /etc/environment
  4. 4.

    Добавьте в файл строку:

    Где ваш_путь — скопированный путь.



    скопированный-путь

  5. 5.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X, а затем нажмите Y.

  6. 6.

  7. 7.

    Проверьте результат. Для этого выполните команду:

    В выводе команды должен появиться путь к версии Java:



    путь-к-версии
    Установка Java Ubuntu

Готово, вы установили переменную окружения JAVA_HOME.

Теперь вы знаете, какие версии и форматы распространения Java можно использовать для операционной системы Ubuntu, и выберете оптимальный для вас способ установки.

Понравилась статья? Поделить с друзьями:
  • Как изменить версию java intellij idea
  • Как изменить версию ios на айфоне
  • Как изменить версию hoi4 на пиратке
  • Как изменить версию hoi 4 на пиратке
  • Как изменить версию gradle android studio