Если вы не редактировали свой сценарий Tomcat B shutdown.bat
по умолчанию, вы увидите, что C:\TomcatB\bin\shutdown.bat
определяет CATALINA_HOME и выполняет:
%CATALINA_HOME%\bin\catalina.bat
Похоже, ваша виртуальная машина TomcatA передает свою собственный CATALINA_HOME для Tomcat B shutdown.bat
, который отменяет значение по умолчанию, используемое C: \ TomcatB \ bin. Вы можете либо создать новый сценарий shutdown2.bat, который не принимает переменную среды CATALINA_HOME, либо переключиться на ProcessBuilder
и установить CATALINA_HOME в команде запуска ProcessBuilder
примерно так:
File exe = new File(Directory, "shutdown.bat");
String [] cmd = new String[] { exe.getAbsolutePath() };
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.environment().put("CATALINA_HOME", exe.getParentFile().getParentFile().getAbsolutePath());
Process process = pb.start();
Если процесс блокировки, вам может потребоваться использовать потоки вывода / ошибок в фоновом потоке или перенаправить их в файл, вызвав перед start ():
pb.redirectOutput(outfile);
pb.redirectError(errfile);