in tc-sbt-runner-agent/src/main/java/jetbrains/buildServer/sbt/SbtRunnerBuildService.java [114:156]
public ProgramCommandLine makeProgramCommandLine() throws RunBuildException {
List<String> jvmArgs = JavaRunnerUtil.extractJvmArgs(getRunnerParameters());
String mainClassName = isAutoInstallMode() ? installSbt() : getMainClassName();
SBTVersion sbtVersion = SbtVersionDetector.discoverSbtVersion(getWorkingDirectory(), getSbtLauncher(), jvmArgs, getLogger());
copySbtTcLogger(sbtVersion);
String javaHome = getJavaHome();
String sbtHome = getSbtHome();
getLogger().message("Java home set to: " + javaHome);
getLogger().message("SBT home set to: " + sbtHome);
JavaCommandLineBuilder cliBuilder = new JavaCommandLineBuilder();
cliBuilder.setJavaHome(javaHome);
cliBuilder.setBaseDir(getCheckoutDirectory().getAbsolutePath());
cliBuilder.setSystemProperties(getVMProperties());
Map<String, String> envVars = new HashMap<String, String>(getEnvironmentVariables());
envVars.put(SbtRunnerConstants.SBT_HOME, sbtHome);
envVars.put(JavaRunnerConstants.JAVA_HOME, javaHome);
String path = envVars.get(PATH);
envVars.put(PATH, javaHome + (!StringUtil.isEmpty(path) ? File.pathSeparator + path : ""));
fixSbtSocketLengthIssueIfNeeded(envVars);
cliBuilder.setEnvVariables(envVars);
cliBuilder.setJvmArgs(jvmArgs);
cliBuilder.setClassPath(getClasspath());
cliBuilder.setMainClass(mainClassName);
cliBuilder.setProgramArgs(getCommands(sbtVersion));
cliBuilder.setWorkingDir(getWorkingDirectory().getAbsolutePath());
return buildCommandline(cliBuilder);
}