Переключение между версиями java linux

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

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

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

Существует открытая версия Java развиваемая сообществом — OpenJDK. OpenJDK присутствует в репозиториях Linux дистрибутивов, в т.ч. Ubuntu. Однако наработки оригинальной версии ушли далеко вперёд по производительности и прочим технологическим параметрам. Так что в реальных условиях использовать OpenJDK для работы может оказаться неприемлемым (хотя и очень редко на практике).

Установка OpenJDK производится поиском в Центре приложений Ubuntu по ключевому слову openjdk, либо выполнив в окне терминала команду:

Если вы планируете разрабатывать игры или приложения на этом языке программирования, то вам понадобится не JRE, а JDK (Java Development Kit). JDK установит кроме виртуальной машины Java (jre) так же компоненты для компиляции программ. Установить его открытую версию можно командой:

Установка 32-битной версии Java в Ubuntu 64 бит

Иногда возникают ситуации, когда необходимо в 64-битной версии Ubuntu установить 32-разрядную версию Java. Это может быть вызвано тем, что в программе или игре, которую вы запускаете по каким-то причинам используются компоненты, для которых необходима только 32-битная версия Java. Например у меня возникла необходимость когда я запускал программу BroBot для раскрутки сообществ в vk.com. Решается данный вопрос довольно просто.

После завершения установки выполните команду :

Введите номер версии с архитектурой i386. В моем случае она была под номером 2.

Установка Oracle Java в Ubuntu

Если использование OpenJDK не воспроизводит нужного эффекта необходимо всё-таки установить оригинальную версию Java. Для этого первым делом удалите все пакеты OpenJDK. Чтобы это сделать выполните в терминале следующую команду:

После этого необходимо подключить специальный репозиторий ppa:webupd8team/java (как подключить ppa репозиторий в ubuntu). Не забудьте обновить метаданные репозиториев командой:

Далее можно устанавливать последние версии Java от Oracle. Просто введите в центре приложений oracle-java7-installer или выполните в окне терминала команду:

Чтобы установить 8-ю версию Java, поискав oracle-java8-installer или выполнив команду:

В случае если вы установили обе версии Java (7 и 8) то переключаться между ними можно с помощью следующих команд:

Для того, чтобы переключится на использование 7-й версии Java

Чтобы переключится на 8-ю версию Java:

Репозиторий постоянно обновляется, поэтому при выходе новых версий Java вы будете получать их автоматически вместе с обновлениями системы и других программ.

Читайте также:  Installation windows server update services

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

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

Если вы занимаетесь разработкой на Java, то вы так же можете выбрать версию компилятора и прочих утилит с помощью той же команды, только указав последним словом имя программы javac, keytool, javadoc или jarsigner. Например:

Один мальчик подписался на наш канал в телеграме и получил +100 hp

Источник

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

При установке Android Studio на Ubuntu 14.04 я получаю сообщение о том, что моя версия Java ( javac 1.7.0_79 ) вызывает проблемы. Я нашел решение, как установить более новую версию Oracle для Java:

Однако я боюсь, что это может перезаписать мою существующую open-jdk версию Java. Поскольку я не знаю, какая из моих программ зависит от Java, я боюсь, что это может привести к сбою этих других программ.

Есть ли способ убедиться, что apt-get не переписать мою предыдущую Java? Я бы хотел установить оба и иметь возможность переключаться между ними вручную, в зависимости от того, какая версия мне нужна.

Apt-get не будет перезаписывать существующие версии Java.

Для переключения между установленными версиями Java используйте update-java-alternatives команду.

Список всех версий Java:

Установить версию Java по умолчанию (требуются права суперпользователя):

. где /path/to/java/version один из перечисленных предыдущей командой (например /usr/lib/jvm/java-7-openjdk-amd64 ).

update-java-alternatives является инструментом , который использует удобство в Debian системы альтернатив ( update-alternatives ) , чтобы установить кучу ссылок на указанную версию Java (например java , javac . ).

который перечисляет все установленные версии с помеченной текущей активной и предоставляет диалог для переключения:

установить $JAVA_HOME из текущей активной версии

Основываясь на ответе @muet, я обнаружил, что это работает без проблем:

Добавить к псевдонимам:

Затем вы можете переключиться в той же оболочке, используя только: useJava7 или useJava8

/ .bashrc, более подробная информация здесь: askubuntu.com/questions/17536/…

Настройка Java

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

Вывод будет выглядеть примерно так:

Теперь вы можете выбрать номер для использования по умолчанию. Это также можно сделать для других команд Java, таких как compiler ( javac ), генератор документации ( javadoc ), инструмент подписи JAR ( jarsigner ) и другие. Вы можете использовать следующую команду, заполнив команду, которую хотите настроить.

Установка JAVA_HOME переменной среды

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

Скопируйте путь из вашей предпочтительной установки и затем откройте / etc / environment, используя Sublime Text или ваш любимый текстовый редактор.

В конце этого файла добавьте следующую строку, заменив выделенный путь собственным скопированным путем.

Сохраните и закройте файл, и перезагрузите его: source /etc/environment .
Теперь вы можете проверить , является ли переменная окружения установлена, выполнив следующую команду: echo $JAVA_HOME . Это вернет путь, который вы только что установили.

Источник

Управление несколькими JDK в Mac OS, Linux и Windows WSL2

И снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили для вас перевод интересной статьи.

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

Читайте также:  Как форматировать диск под линукс

В наши дни установка, управление и переключение между JDK при разработке становится непростой задачей, потому что большое количество разработчиков все еще работает с Java 8, хотя многие уже переходят на Java 11. Эта проблема может быть решена разными способами. В этой статье мы рассмотрим некоторые из них.

Ручной способ

Вы можете скачать дистрибутивы с сайта вендора JDK и установить их все вручную (или просто распаковать их в какую-нибудь папку вроде $user/jdks ) и все. Но тогда вам придется каждый раз проверять и обновлять JAVA_HOME , чтобы там была нужная вам JDK.

Это можно сделать с помощью bash-скриптов, bash-функций и т. д. В чем же тогда проблема? Вы просто можете забыть вызвать скрипт / функцию и поймете, что что-то пошло не так, только когда увидите UnsupportedClassVersionError .

Если вы предпочитаете все делать вручную, то можете покопаться в интернете для поиска решений. И это может быть хорошим вариантом для продвинутых пользователей. Но я использую для этого пару утилит. Итак, давайте посмотрим на них.

Лучший способ

На мой взгляд, идеальным решением будет объединение двух open source — инструментов, которые существуют уже довольно давно, и возможно, вы знакомы, по крайней мере, с одним из них. Но что вы не знаете, так это то, что их можно использовать вместе.

  • SDKMAN!
  • jEnv

Давайте посмотрим на их совместное использование.

Установка нескольких JDK


После установки SDKMAN! наберите:

Найдите нужного вендора, версию и введите:

Давайте установим четыре JDK: две последние версии Oracle OpenJDK и две LTS-версии AdoptOpenJDK.

При установке не выбирайте JDK по умолчанию.

  1. AdoptOpenJDK сборка OpenJDK 8u252 — LTS
  2. AdoptOpenJDK сборка OpenJDK 11.0.7 — LTS
  3. Oracle OpenJDK 14 — Последний GA
  4. Oracle OpenJDK 15 — Early Access сборка

Эти четыре версии должны отвечать вашим потребностям для легаси-проектов на Java 8, для современных проектов на Java 11, а также для экспериментов с нововведениями в Java 14 и Java 15.

Отлично. У вас есть четыре JDK, установленные локально с помощью SDKMAN! Я думаю, что эта утилита действительно удобна для установки JDK и, я надеюсь, она вам тоже понравилась.

Все установленные JDK можно найти в следующем каталоге:

Если у вас нет необходимости часто переключаться между разными JDK, то этого будет достаточно. Вы можете использовать SDKMAN! для выбора JDK:

На этом можно остановиться и использовать только SDKMAN!, но рано или поздно, вы забудете переключить JDK точно так же как при ручном подходе. Поэтому я предпочитаю автоматическое переключение JDK.

Управление несколькими JDK с помощью jEnv

Несмотря на то что SDKMAN! удобен для установки JDK, но он не помогает при автоматическом переключении между разными JDK при переходе от одного проекта к другому. Здесь нам поможет jEnv.

После того как вы установите несколько JDK, с помощью SDKMAN! или любыми другими способами, вам нужно будет добавить их в jEnv:

Повторите команду jenv add для оставшихся трех версий JDK.

jEnv особенно удобен для тех, кто постоянно использует командную строку. Он позволит вам:

  1. Установить версию Java глобально для вашей системы.
  2. Установить версию Java для текущего каталога / проекта, в котором вы находитесь.
  3. Установить версию Java для текущего shell’а.
Читайте также:  What is windows firewall control

jEnv использует shim и автоматически управляет переменной окружения JAVA_HOME. Таким образом, после того как вы настроите вашу систему, jEnv будет переключать версию JDK на наиболее подходящую, на основе вышеуказанных приоритетов и текущей директории. Круто! У него есть и другие полезные функции — дополнительную информацию смотрите на сайте.

Автоматическое переключение между JDK

Теперь у вас установлены Java 8, 11, 14 и 15-EA. Итак, как же переключаться между ними? Давайте настроим версии и протестируем переключение.

Сначала нужно указать дефолтную глобальную JDK в системе. Для этого я обычно использую ранние сборки (Early Access). Всякий раз, когда я начинаю работать с новым проектом, я автоматически использую предстоящий релиз, что помогает мне выявить потенциальные проблемы, которые я могу сообщить в проект OpenJDK. Вы же тоже так делаете…

Теперь для любой папки, в которой вы находитесь, при выполнении java -version вы получите OpenJDK 15 EA.

Если у вас есть проект, который должен использовать Java 8, то перейдите в папку и запустите:

В результате будет создан файл под названием .java-version со следующим содержимым:

Этот файл сообщает jEnv, какую JDK использовать, когда вы находитесь в этой папке.

Наконец, если вы и хотите временно переключиться на другую версию JDK, то используйте jenv shell .

Здесь есть демо, которое может пояснить все вышеописанное и как работает автопереключение.

После публикации статьи на Reddit были несколько интересных комментариев, о которых стоит здесь сказать:

  • SDKMAN! с версии 5.8.1+ поддерживает sdk env и там тоже доступно автоматическое переключение.
  • direnv очень хорош и не привязан к java. Делает то же самое, что и jEnv, за исключением того, что не помогает вам легко переключать JDK. Вы должны редактировать файлы вручную.
  • autoenv — еще одна альтернатива direnv с теми же ограничениями.
  • jabba — наиболее перспективная альтернатива сочетанию SDKMAN + jEnv, поскольку поддерживает весь их функционал и работает в Windows (PowerShell), что не поддерживается другими, упомянутыми выше, инструментами.

Источник

Как изменить версию Java / JDK по умолчанию и ClassPath в Linux, используя .bash_profile?

Когда вы устанавливаете Java по умолчанию apt install команда на ОС Ubuntu или CentOS Linux, тогда он установит Java в папку по умолчанию /usr/bin/java ,

Первое первым. Как установить или обновить JVM в ОС Linux?

Используйте ниже команду linux для установки последней версии Java в Ubuntu, CentOS:

# apt установить openjdk-9-jre-headless

Как вы видите выше, у меня уже есть latest JDK 9 installed и тогда нет необходимости загружать какие-либо дополнительные пакеты здесь. Для нового перезаписанного хоста он полностью установит новый двоичный файл Java / JDK для вас.

После этого — просто используйте команду which java чтобы узнать переменную CLASSPATH. В моем случае это /usr/bin/java ,

Это версия Java по умолчанию, доступная для использования. С простой командой java -version вы увидите, на какой JDK он ссылался.

Это идеальная ситуация для большинства случаев, если вы единственный, кто работает над проектом. Но это не относится к большинству компаний

Обычно на производстве компании поставляют Java со своим бинарным проектом. Во время выполнения они настраивают CLASSPATH and PATH соответственно использовать предпочтительную версию Java.

Хотите изменить версию JVM по умолчанию в ОС Ubuntu Linux? Или CentOS Linux?

Источник

Оцените статью