Может ли catalina.bat изменить переменные окружения? - PullRequest
3 голосов
/ 14 марта 2012

Я унаследовал проект и (согласно инструкциям другого разработчика) переписал мою версию Tomcat catalina.bat своей (он использует ту же версию). Затем я попытался перезапустить Tomcat и получил исключение, относящееся к commons-logging.jar, который является зависимостью Tomcat.

После большого разочарования я просто скачал другую версию Tomcat и попытался запустить ее прямо из коробки (без конфигурации) ... и я получил ту же ошибку!

Итак, я задал этот вопрос на SO несколько дней назад. Все согласились с тем, что мой путь к классам каким-то образом стал "грязным", и теперь мне интересно, если файл catalina.bat, который я слепо скопировал, каким-то образом установил переменные окружения, которые влияют на способность Tomcat к начальной загрузке - даже между версиями.

Я знаю, что этот вопрос похож на другой, который я задавал, но отличается. В то время как мой первый вопрос был «что здесь не так» и был гораздо более общим, то, что я спрашиваю сейчас (хотя и связано), более конкретно и касается catalina.bat и того, как оно связано с переменными среды Windows 7.

Спасибо за любую помощь здесь.

Редактировать : я вижу, у этого вопроса уже есть закрытое голосование за то, что он "не по теме". Мой аргумент против этого заключается в следующем: SO - это сайт вопросов и ответов, посвященный программированию, который задает конкретные вопросы, связанные с кодом и программированием. catalina.bat - это скрипт, который является кодом, и этот вопрос касается потенциальной ошибки / дефекта в скрипте, который я использую.

Редактировать : Нашел строку в catalina.bat, откуда поступает сообщение об ошибке (и, соответственно, откуда умирает запуск Tomcat). Это строка (из неизменной версии 7.0.19):

% _ EXECJAVA%% JAVA_OPTS%% CATALINA_OPTS%% DEBUG_OPTS% -Djava.endorsed.dirs = "% JAVA_ENDORSED_DIRS%" -classpath "% CLASSPATH%" -Dcatalina.base = "% CATALINA_cat.-%."%% "" % CATALINA_HOME% "-Djava.io.tmpdir ="% CATALINA_TMPDIR% "% MAINCLASS%% CMD_LINE_ARGS%% ACTION%

Я смог поместить echos в скрипт и получил следующие значения:

JAVA_OPTS = -Djava.util.logging.config.file="C:\Program Files\Apache\apache-to
mcat-7.0.19\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli
.ClassLoaderLogManager
CATALINA_OPTS =
DEBUG_OPTS =
JAVA_ENDORSED_DIRS = C:\Program Files\Apache\apache-tomcat-7.0.19\endorsed
CLASSPATH = C:\Program Files\Apache\apache-tomcat-7.0.19\bin\bootstrap.jar
CATALINA_BASE = C:\Program Files\Apache\apache-tomcat-7.0.19
CATALINA_HOME = C:\Program Files\Apache\apache-tomcat-7.0.19
CATALINA_TMPDIR = C:\Program Files\Apache\apache-tomcat-7.0.19\temp
MAINCLASS is org.apache.catalina.startup.Bootstrap
CMD_LINE_ARGS =
ACTION = start

JAVA_OPTS полностью сосредоточен на записях logging.properties и ClassLoaderLogManager. Означает ли это что-нибудь для кого-либо?!?

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

вы можете установить переменные окружения в любом пакетном файле, включая catalina.bat. Но эти изменения остаются только в текущей рабочей среде и не влияют на все остальные рабочие среды.

Для CLASSPATH посмотрите в соответствующих пакетных файлах, если вы видите что-то вроде set CLASSPATH=, которое дает вам информацию об установленном classpath.

1 голос
/ 14 марта 2012

Глядя на предыдущие ответы в вашем другом вопросе, не кажется, что консенсус заключался в том, что путь к классам стал "грязным". Но, скорее, сама установка Tomcat стала грязной из-за сочетания нескольких разных версий Tomcat.

Обратите внимание, что по умолчанию Tomcat не использует значения из вашего CLASSPATH именно для того, чтобы избежать проблем, описанных вами. Вы должны изучить файл, который дал вам ваш коллега, чтобы увидеть, что именно он в нем изменил (учитывая, что вы можете написать практически все в файле BAT, почти невозможно точно определить точную проблему, основываясь на описании, которое вы дали).

Удачи.

...