Как переключить версию java
Перейти к содержимому

Как переключить версию java

  • автор:

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

Question: When I am trying to run a Java program on Linux, I am getting the following error. Looks like the Java program is compiled for a different Java version than the default Java program installed on my Linux. How can I switch the default Java version on Linux?

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/linux-console.net/hmon/gui/NetConf : Unsupported major.minor version 51.0

Когда Java-программа компилируется, среда сборки устанавливает цель, которая является самой старой версией JRE, которую может поддерживать программа. Если вы запускаете программу Java в системе Linux, которая не соответствует минимальным требованиям к версии JRE, вы столкнетесь со следующей ошибкой при запуске программы.

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/linux-console.net/hmon/gui/NetConf : Unsupported major.minor version 51.0

Например, в этом случае программа скомпилирована для Java JRE 1.7, но в системе установлена только Java JRE 1.6.

Чтобы решить эту проблему, вам нужно изменить версию Java по умолчанию, которую вы используете, на Java JRE 1.7 или выше (при условии, что такая JRE уже установлена).

Сначала проверьте доступные версии Java в вашей системе Linux с помощью команды update-alternatives :

$ sudo update-alternatives --display java

В этом примере установлены четыре разные версии Java: OpenJDK JRE 1.6, Oracle Java JRE 1.6, OpenJDK JRE 1.7 и Oracle Java JRE 1.7. Версия Java по умолчанию в настоящее время установлена на OpenJDK JRE 1.6.

Если необходимая Java JRE не установлена, вы всегда можете установить ее, используя эту инструкцию.

Теперь, когда есть подходящие кандидаты для перехода, вы можете переключить версию Java по умолчанию среди доступных Java JRE, выполнив следующую команду:

$ sudo update-alternatives --config java

При появлении запроса выберите версию Java, которую вы хотите использовать. В этом примере мы выбираем Oracle Java JRE 1.7.

Теперь вы можете проверить версию Java по умолчанию следующим образом.

$ java -version

Наконец, если вы где-то определили переменную среды JAVA_HOME , обновите переменную в соответствии с новой установленной версией Java по умолчанию.

Все права защищены. © Linux-Console.net • 2019-2023

Изменение версии Java по умолчанию на MacOS

В процессе работы с Java-проектами на MacOS, часто возникает необходимость использовать определенную версию Java Development Kit (JDK). В этом случае может потребоваться изменить версию Java по умолчанию на вашем компьютере.

Проблема

Предположим, что на компьютере установлено несколько версий JDK. Проект, над которым ведется работа, требует JDK версии 8, в то время как версия Java по умолчанию на компьютере — 11. Это может приводить к проблемам совместимости.

Решение

На MacOS, можно изменить версию Java по умолчанию с помощью команды export в терминале. Эта команда позволяет указать путь к нужной версии Java. Сначала необходимо узнать, какие версии JDK установлены на компьютере. Это можно сделать с помощью команды:

/usr/libexec/java_home -V

В ответ на эту команду, терминал выведет список установленных версий JDK. Выглядеть это будет примерно так:

Matching Java Virtual Machines (3): 11.0.1, x86_64: "Java SE 11.0.1" /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home 1.8.0_191, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home 1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home

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

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

В этом примере в качестве версии Java по умолчанию выбрана версия 1.8 (JDK 8).

Это изменение будет действовать только в текущей сессии терминала. Чтобы сделать его постоянным, необходимо добавить эту команду в файл .bash_profile или .zshrc (в зависимости от используемого оболочки):

echo 'export JAVA_HOME=`/usr/libexec/java_home -v 1.8`' >> ~/.bash_profile

Теперь при каждом запуске терминала версией Java по умолчанию будет JDK 8.

Как переключаться между версиями Java в Ubuntu

Java, будучи широко распространенным языком программирования, пережил множество обновлений и версий. Иногда программное обеспечение, которое мы запускаем или разрабатываем, требует определенной версии. Как же переключаться между этими версиями в Linux? Позвольте рассказать вам об этом шаг за шагом.

Почему вам могут понадобиться разные версии Java

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

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

1. Проверка установленных версий Java

Перед переключением необходимо узнать, какие версии установлены на машине в данный момент.

Устанавливаем update-java-alternatives:

Сначала установим необходимый пакет:

sudo apt-get install java-common

Выполните эту команду:

sudo update-java-alternatives --list

Эта команда выводит список всех установленных версий Java. Это может выглядеть примерно так:

java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64

В этом выводе сообщается, что на данной машине установлены Java 8 и Java 11.

Проверить текущую версию можно с помощью следующей команды:

java -version

Как можно заметить, Java 8 активна на тестовом компьютере.

2. Установка новой версии Java

Что делать, если нужная версия еще не установлена? Вот как ее можно добавить:

Обновить репозиторий пакетов

Сначала обновите репозиторий пакетов:

sudo apt update
Установка желаемой версии Java

Допустим, вы хотите установить Java 11:

sudo apt install openjdk-11-jdk
Проверка установки

Чтобы убедиться в том, что новая версия установлена:

sudo update-java-alternatives --list

Теперь в списке должна появиться Java 11.

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

Способ 1: Использование update-java-alternatives

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

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

Замените java-11-openjdk-amd64 на желаемую версию.

Замечание: Если при выполнении update-java-alternatives возникают какие-либо проблемы, это может быть связано с тем, что некоторые ссылки на выбранную версию не существуют. Это связано с отсутствием файла .jinfo. К сожалению, многие пользователи сообщают об этой проблеме даже после переустановки Java. Если вы оказались в такой же ситуации, не расстраивайтесь: есть альтернативный метод!

Способ 2: Использование альтернатив

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

sudo alternatives --config java

Появится список установленных версий Java. Просто выберите номер, соответствующий версии, которую вы хотите использовать.

4. Установка переменной окружения JAVA_HOME

После смены версии Java желательно соответствующим образом установить переменную окружения JAVA_HOME.

Найдите путь установки Java
sudo alternatives --config java

Это может выглядеть как /usr/lib/jvm/java-11-openjdk-amd64.

Редактирование файла .bashrc или .bash_profile

Откройте файл с помощью:

nano ~/.bashrc

Добавьте эту строку в конец (замените путь на путь вашей установки Java):

export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

Применить изменения
source ~/.bashrc

5. Проверка переключения

Чтобы убедиться в успешном переключении, выполните следующие действия:

java -version

Вывод должен отражать выбранную вами версию Java.

Советы профессионалов

  • Помните о своих потребностях: Всегда помните о требованиях проекта. Несмотря на соблазн всегда использовать последнюю версию Java, это не всегда может быть лучшим выбором с точки зрения совместимости.
  • Автоматизируйте процесс: Если вы часто переходите на другой язык, подумайте о написании сценария, который будет менять версии и устанавливать JAVA_HOME одной командой.
  • Следите за обновлениями: Java регулярно обновляется. Возьмите за правило проверять наличие новых версий, особенно если речь идет об исправлениях безопасности.

Переключение версии Java по умолчанию в Debian

Если на компьютере с операционной системой Debian установлены несколько версий Java, то иногда бывает необходимо сменить, какая из них должна использоваться по умолчанию (по дефолту). Для этого существует специальная утилита, которая входит в состав пакета java-common — update-java-alternatives. Этот пакет скорее всего уже есть в системе, если установлена Java.

Получение списка путей установок различных версий

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

sudo update-java-alternatives —list
Примерный вывод при выполнении команды будет такой:

java-1.10.0-openjdk-amd64 1101 /usr/lib/jvm/java-1.10.0-openjdk-amd64
java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64

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

Проверка версии, установленной по дефолту

Следующим подготовительным шагом будет определение, какая именно версия сейчас используется по умолчанию. Внимание, тут нет опечатки, дефис перед словом version всего один:

java -version
Примерный вывод в терминале после выполнения команды:

openjdk version «11» 2018-09-25
OpenJDK Runtime Environment (build 11+17-Debian-2)
OpenJDK 64-Bit Server VM (build 11+17-Debian-2, mixed mode, sharing)

Видно, что дефолтной является версия 11. Особое внимание стоить обратить на дату релиза — сентябрь. Я пишу эти строки в июле.

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

Почему это бывает нужно? В моём случае, сразу после установки у меня не запустилась среда разработки Arduino, которая написана на Java. Собственно, вместе с Arduino и установилась 11-ая версия Java. Я решил, что она ещё не доработана (у меня Debian Testing) и стоит попробовать предыдущую версию. Переключился с версии 11 на версию 10 следующей командой:

sudo update-java-alternatives —set /usr/lib/jvm/java-1.10.0-openjdk-amd64

После —set я указал путь до файлов установленной Java 10 версии. Этот путь я выяснил выше, используя команду —list. Теперь при определении версии Java вывод в терминале стал таким:

openjdk version «10.0.2» 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Debian-1)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Debian-1, mixed mode)

И с Arduino стало всё хорошо.

  • Acer 3810TG + Ubuntu: направляем звук в нужное русло
  • Как создать собственный сервис Shadowsocks для доступа к заблокированным сайтам
  • Безопасный интернет с Shadowsocks

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *