Переключение между различными версиями JDK в Windows

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

Я нашел 2 способа, которые должны решить эту проблему, но это не сработает.

Первое решение создает файлы bat, подобные этому:

@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_72
echo setting PATH
set PATH=C:\Program Files\Java\jdk1.7.0_72\bin;%PATH%
echo Display java version
java -version
pause

И после запуска этой летучей мыши, я вижу правильную версию Java. Но когда я закрываю этот CMD и открываю новый и набираю "java -version", он говорит, что у меня все еще есть 1.8.0_25. Так что это не работает.

Второе решение, которое я нашел, - это приложение из этого сайта. И это также не работает. Тот же эффект, что и в первом решении.

Любые идеи? Поскольку изменение JAVA_HOME и PAHT с помощью: Win + Pause → Advanced System Settings → Environment Variables → и редактирования этих переменных, является ужасным способом...

Ответ 1

Команда set работает только для текущего терминала. Чтобы навсегда установить переменную системной или пользовательской среды, вы можете использовать setx.

setx JAVA_HOME "C:\Program Files\Java\jdk1.7.0_72" /m

Параметр /m используется для установки переменной ширины системы (а не только для текущего пользователя). Для использования этой опции терминал должен запускаться как администратор.

Переменная будет доступна во всех новых окнах терминала, но не в текущей. Если вы хотите отобразить путь в том же окне, вам нужно использовать как set, так и setx.

Вы можете избежать манипуляции с переменной PATH, если только раз разместите там %JAVA_HOME%, а не полный путь JDK. Если вы измените JAVA_HOME, будет также обновлен PATH.


Есть также несколько редакторов переменных окружения, альтернативных громоздким настройкам переменных среды Windows. См. "Есть ли удобный способ редактировать PATH в Windows 7?" на Super User.