Если вы хотите указать JDK для запуска SBT (вместо JDK для использования для запуска кода и / или тестов изнутри SBT ), вы можете использовать переменную окружения JAVA_HOMES
и файл .java-version
в вашем проекте.
Это описано в SBT .Файл sbt.bat
(обычно устанавливается в C:\Program Files (x86)\sbt\bin
) как "1017 * для бедняков", который в настоящее время недоступен в Windows .
(Если вы ищетеаналогичное решение для Linux или MacOS , вы можете использовать jEnv
или указать домашний каталог Java через -java-home
SBT опция командной строки, которая, к сожалению, в настоящее время также не реализована в Windows .)
Переменная среды JAVA_HOMES
(не путать сJAVA_HOME
) используется SBT для идентификации каталога, который содержит одну или несколько JDK установок.Например, если вы используете AdoptOpenJDK JDK (рекомендуется для Windows , если Oracle Новые лицензионные ограничения представляют для вас проблему), тогда это обычно определяется как C:\Program Files\AdoptOpenJDK
.
Допустим, у вас есть две такие установки JDK в каталоге JAVA_HOMES
: один в подкаталоге с именем jdk-8.0.212.03-hotspot
;другой в подкаталоге jdk-11.0.3.7-hotspot
.Вы можете выбрать, какой JDK вы хотите использовать, для каждого отдельного проекта, создав файл с именем .java-version
в корневом каталоге каждого проекта SBT .Чтобы использовать JDK в подкаталоге jdk-8.0.212.03-hotspot
, этот файл должен содержать:
jdk-8.0.212.03-hotspot
Когда вы запускаете команду sbt
, если определено JAVA_HOMES
, SBT будет искать файл .java-version
в корневом каталоге проекта.Если он находит его, он создает локальную версию JAVA_HOME
, которая определяется как JAVA_HOMES
плюс последняя строка .java-version
.Он также добавляет этот каталог JAVA_HOME
bin
в путь.(Он также создает переменную среды JDK_HOME
local с тем же значением.)
Это должно делать то, что вы хотите.Хотя это решение не основано на командной строке, оно не оказывает негативного влияния на других пользователей и позволяет настраивать каждый проект SBT индивидуально.Если у вас нет разрешения на создание общесистемной переменной среды, вы все равно сможете создать пользовательскую переменную среды JAVA_HOMES
.Обратите внимание, что при использовании этого решения JDK , который используется SBT , не обязательно будет идентифицироваться вашей общесистемной (или пользовательской) переменной среды JAVA_HOME
.(Если вы не определили JAVA_HOMES
, то SBT будет ожидать, что вы определили действительную переменную JAVA_HOME
.)
Одно слово предостережения: если вы передадите .java-version
вПри управлении исходным кодом вы должны убедиться, что каждый определяет допустимую переменную среды JAVA_HOMES
и имеет JDK с точно таким же именем, установленным в этом каталоге.