Startup.bat
зависит от двух переменных env: CATALINA_HOME и JRE_HOME (или JAVA_HOME).
У вас должен быть установлен JRE_HOME или JAVA_HOME, иначе вы не сможете запустить автозапуск двойным щелчком мыши.
Это оставляет нас с CATALINA_HOME. Сценарий запуска попытается угадать его, если он не установлен, но это работает, только если он выполняется из своего текущего каталога (или, если быть точным, его родителя). Если вы попытаетесь запустить его из другого каталога, а CATALINA_HOME не будет установлен, произойдет сбой (с сообщением об этом).
Если это ваша проблема, вы должны увидеть подобное сообщение в верхней части окна cmd:
Переменная среды CATALINA_HOME не определена правильно. Эта переменная среды необходима для запуска этой программы.
Еще одна проблема, с которой вы можете столкнуться, это когда ваш путь содержит пробелы. Похоже, что нет, но все же может быть полезным для других, поэтому я добавлю эту информацию.
Когда ваша команда содержит пробелы, вам нужно заключить в кавычки команду start
, верно? Это должно сделать: "cmd.exe /c start \"my path to tomcat bin/startup.bat\""
Неправильно. В итоге вы бросаете взгляд на командное окно под названием мой путь к tomcat bin /startup.bat
start
принимает первый цитируемый аргумент в качестве заголовка ... как хорошо. Правильная форма это:
"cmd.exe /c start \"\" \"my path to tomcat bin/startup.bat\""
Но ждать
обе эти проблемы на самом деле вообще не будут отображать окно Tomcat - вы говорите, что оно закрывается, поэтому оно запускается, а затем умирает. Хм ... это скорее всего потому, что на 8080 уже прослушивается процесс. Может быть, ваш Java IDE запускает Tomcat? Или запускает другой сервер прослушивания на 8080?
Если это причина, вы должны увидеть похожую строку в журнале Tomcat (они хранятся в CATALINA_HOME/logs
):
java.net.BindException: адрес уже используется: JVM_Bind
Если это ваша проблема, то вам нужно либо остановить первый экземпляр, либо перенастроить процессы сервера, чтобы каждый из них прослушивал разные порты.
Примечание: я использовал следующее, чтобы запустить Tomcat из Java, у меня отлично работает:
Runtime r=Runtime.getRuntime();
r.exec("cmd.exe /c start startup.bat", //path to executable
null, // env vars, null means pass parent env
new File("my path to tomcat/bin")); // working directory