Вопрос или проблема
Я хочу установить новую версию Java JDK 11.0.02. Я попытался использовать эту ссылку:
первый источник
а затем эту: второй источник
Теперь, используя cmd, я запускаю эти две команды:
java -version
==> печатается старая версия.javac -version
новая версия Java JDK 11.0.02.
Мой вопрос: Почему они отличаются и как я могу убедиться, что последняя версия является основной?
На Linux, если у вас установлены обе (или более) версии, вы можете использовать следующую команду для выбора активной:
sudo update-alternatives --config java
По моему опыту, если у вас установлена JRE, а затем установлен JDK, путь к java.exe и т.д. останется указывать на JRE.
Надеюсь, я ответил на ваши два вопроса, почему они различаются (из-за порядка вашего пути) и как сделать так, чтобы последняя версия выполнялась (либо установив последнюю JRE, либо исправив свой путь вручную) в деталях ниже:
$ where java
C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
C:\Program Files (x86)\Java\jdk1.8.0_121\bin\java.exe
C:\ProgramData\Oracle\Java\javapath\java.exe
$ which java [кстати, which – это инструмент GNU, не встроенный в Windows]
C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.EXE
$ path
PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Java\jdk1.8.0_121\bin;
$ “C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe” -version
java version “1.8.0_201”
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) Client VM (build 25.201-b09, mixed mode)
$ “C:\Program Files (x86)\Java\jdk1.8.0_121\bin\java.exe” -version
java version “1.8.0_121”
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) Client VM (build 25.121-b13, mixed mode, sharing)
(Предполагая на данный момент, что моя версия JDK java была более новой) я мог бы отдельно обновить JRE, и это, вероятно, исправило бы ситуацию, поместив правильную новую версию в Common Files для меня, или я мог бы просто отредактировать свой путь, чтобы поставить C:\Program Files (x86)\Java\jdk1.8.0_121\bin; перед C:\Program Files (x86)\Common Files\Oracle\Java\javapath;
Ответ или решение
Чтобы изменить версию Java JDK, необходимо внимательно настроить переменные окружения вашей операционной системы, чтобы указать на нужную версию JDK и убедиться, что она является текущей версией по умолчанию. Давайте разберем процесс на примерах для Windows и Linux.
Шаги для Windows
-
Проверьте текущие версии Java:
Откройте командную строку и выполните команды:java -version javac -version
Это поможет вам определить, какие версии JRE и JDK установлены и какие из них активны.
-
Обновите переменные окружения:
Вам необходимо обновить переменную окруженияPATH
, чтобы указать на директорию новой JDK. Для этого:- Нажмите
Win + R
, введитеsysdm.cpl
и нажмитеEnter
. - Перейдите на вкладку "Дополнительно" и нажмите кнопку "Переменные среды".
- Найдите переменную
Path
в списке "Системные переменные" и выберите ее, затем нажмите "Изменить". - Добавьте путь к новой установке JDK, например:
C:\Program Files\Java\jdk-11.0.2\bin
- Убедитесь, что этот путь стоит перед другими путями к Java, чтобы эта версия имела приоритет.
- Нажмите
-
Удалите старые версии из пути:
Если в переменнойPath
существуют записи, указывающие на старые версии Java (например,C:\Program Files (x86)\Java\jdk1.8.0_121\bin
), вы можете удалить их или переместить вниз списка. -
Проверьте изменения:
Закройте командную строку и откройте её снова, затем выполните команды:java -version javac -version
Убедитесь, что обе команды теперь показывают новую установленную версию JDK.
Шаги для Linux
-
Проверьте текущие версии Java:
Выполните команды:java -version javac -version
-
Измените используемую версию через
update-alternatives
:
Выполните команду:sudo update-alternatives --config java
Это позволит вам выбрать, какую версию Java использовать. Введите номер, соответствующий желаемой версии JDK (например, 11.0.2).
-
Обновите
javac
:
Также можете изменить версию компилятора:sudo update-alternatives --config javac
-
Проверьте изменения:
Выполните команды снова для проверки:java -version javac -version
Заключение
Разница в версиях java
и javac
может быть связана с тем, что на систему может быть установлено несколько версий JRE и JDK, и порядок путей в переменной Path
определяет, какая из них используется по умолчанию. Следуя приведенным инструкциям, вы сможете изменить версию Java JDK и убедиться, что нужная версия используется по умолчанию.