Как установить JAVA_HOME или CATALINA_HOME, если для проектов используется более 1 версии? - PullRequest
14 голосов
/ 30 мая 2011

У меня есть разные проекты, использующие разные версии JDK (5.0, 6.0) и Tomcat (6.0, 7.0), так как мои JAVA_HOME и CATALINA_HOME должны быть установлены в переменных среды?

Или, может быть, нет необходимости устанавливать JAVA_HOME и CATALINA_HOME в переменных среды, если я запускаю свое приложение с помощью файла .War? На сервере jdk/tomcat будет работать версия, которую я выбрал, когда упаковал ее (через Eclipse -> настройки ...).

Ответы [ 3 ]

15 голосов
/ 30 мая 2011

Внутри сценария запуска tomcat /bin/catalina.sh используются следующие переменные среды:

  • JAVA_HOME - это путь JDK, который использовался для запуска tomcat и веб-приложений
  • CATALINA_HOME это путь к файлам двоичных файлов tomcat
  • CATALINA_BASE это путь к файлам конфигурации tomcat

Итак, как насчет этого подхода?Например:

Установите JDK 5.0 в: /opt/jdk5Установите JDK 6.0 для: /opt/jdk6Установите Tomcat 6.0 для: /opt/tomcat6Установите Tomcat 7.0 для: /opt/tomcat7

У каждого вашего веб-приложения есть своя собственная папка для хранения его собственной конфигурации tomcat.Например: /home/web1 для веб-приложения 1/home/web2 для веб-приложения 2

Внутри каждой из этих папок нам нужны следующие подкаталоги: conf, logs, temp, webapps и work. Просто скопируйте эти подкаталоги из установочной папки tomcat(т. е. /opt/tomcat7/). Затем поместите .war в соответствующие папки webapps (например, /home/web1/webapps/webappl.war, /home/web2/webapps/webapp2.war).

Наконец, напишите скрипт для запуска tomcat, используя другой JDKи кот для каждого приложения.Например, чтобы запустить web1, ваш скрипт должен выглядеть следующим образом:

JAVA_HOME=/path/to/jdk  #eg./opt/jdk6 
CATALINA_HOME=/path/to/tomcat/installation #eg./opt/tomcat7 
CATALINA_BASE=/home/web1/
export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE
$CATALINA_HOME/bin/catalina.sh start

Ссылка: http://www.mohancheema.net/appserver/setting-tomcat-to-run-mutiple-instances-of-it

4 голосов
/ 30 мая 2011

Если вы используете его в Eclipse, вы можете использовать диалоговое окно Run Configuration, чтобы установить любые переменные окружения, которые вам нужно изменить. Они автоматически устанавливаются при выполнении указанной конфигурации запуска. Для этого щелкните правой кнопкой мыши свой проект, выберите «Выполнить» -> «Выполнить настройки». В этом вы можете выбрать Run Configuration и перейти на вкладку Environment, где вы можете указать нужные переменные, а также вы можете переопределить все, что установлено с помощью O / S.

Если вы хотите сделать это вне затмения, и у вас есть копия Tomcat, выделенная для каждого проекта, отредактируйте файлы startup.sh или startup.bat в зависимости от вашей ОС, а затем явно установите переменные environemnt там.

Ex. Для проекта 1: поверх файла /opt/apache-tomcat6-1/bin/startup.sh добавьте эти строки

export JAVA_HOME = '/ opt / jdk1' export JAVA_HOME = '/ opt / apache-tomcat6-1'

Ex. Для проекта 2: поверх файла /opt/apache-tomcat6-2/bin/startup.sh добавьте эти строки

export JAVA_HOME = '/ opt / jdk2' export JAVA_HOME = '/ opt / apache-tomcat6-2'

Если у вас нет выделенной копии Tomcat, вы можете создать сценарий оболочки / пакетный файл для каждого проекта, который установит необходимые переменные среды, подобные этой, и затем вызовет соответствующий файл startup.sh или startup.bat.

2 голосов
/ 30 мая 2011

Эти переменные используются скриптами, запускающими Tomcat, и не имеют значения в противном случае. Вы можете установить их непосредственно перед запуском сценария startup.sh или отредактировать сценарий catalina.sh, чтобы установить значения в самом сценарии (это хороший способ сделать это, поскольку catalina.sh используется другими сценариями совместно. ), или вы можете написать свои собственные сценарии, которые устанавливают переменные, а затем вызывать сценарии tomcat ... Есть много возможностей. Вы просто не можете установить переменные глобально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...