2009-11-09 2 views
32

У меня есть 2 веб-проектов Java. Один работает на JDK 1.5, а другой работает на JDK 1.6. Я хочу запустить оба из них на одном компьютере, но переменная среды JAVA_HOME может иметь только одно значение. Я хочу установить JAVA_HOME для каждого сервера Tomcat.Как установить JAVA_HOME для нескольких экземпляров Tomcat?

+0

Связанный вопрос (для Linux): http://askubuntu.com/questions/154953/specify-jdk-for-tomcat7 –

ответ

19

Единственное, что вы могли бы сделать, это изменить Catalina.sh (на основе Unix) или на catalina.bat (на основе Windows).

В каждом из скриптов вы можете установить определенные переменные, которые наследуют только процессы, созданные под оболочкой. Таким образом, для catalina.sh, используйте следующую строку:

export JAVA_HOME="intented java home" 

И для окон используют

set JAVA_HOME="intented java home" 
+1

Разве версия для Windows не должна отличаться от версии unix? Я не партийный парень, но я думал, что это 'set', или я встречаюсь с самим собой? –

+1

Я использую Windows XP, и я добавил строку «export JAVA_HOME =« C: \ Program Files \ Java \ jdk1.6.0_12 »в начале файла Tomcat/bin/catalina.bat Но Tomcat не может начать Herr является частью моего файла бэр Guess CATALINA_HOME если не определено экспорт JAVA_HOME = "C: \ Program Files \ Java \ jdk1.6.0_12" набор JAVA_OPTS =% JAVA_OPTS% -Xmx512m набор CURRENT_DIR =% кд% если не "% CATALINA_HOME%" == "" goto gotHome set CATALINA_HOME =% CURRENT_DIR% если есть "% CATALINA_HOME% \ bin \ catalina.bat" goto okHome –

+0

Ah. Использование злой копии! Я не хотел поставьте экспорт для версии Windows. Ry4an был прав в этом наборе, это правильная команда. ответ. – bogertron

7

Кроме того, обратите внимание, что не должно быть никаких пробелов после =:

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_27 
3

В UNIX у меня была эта проблема, я отредактировал catalina.sh вручную и ввел

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24 
echo "Using JAVA_HOME:  $JAVA_HOME" 

как первые 2 строки. Я попытался установить JAVA_HOME в /etc/profile, но это не помогло.

Все это сработало.

0

Только примечание ...

Если добавить этот код setclasspath.bat или setclasspath.sh, он на самом деле будет использоваться все скрипты сервера Tomcat можно запускать, а не только Каталина.

Способ установки переменной, как описано другими.

36

разместить setenv.sh в директории бен с

JAVA_HOME=/usr/java/jdk1.6.0_43/ 
JRE_HOME=/usr/java/jdk1.6.0_43/jre 

или другая версия вашей работает.

+2

Не нужно добавлять 'JAVA_HOME' и' JRE_HOME'. _ Если указаны JRE_HOME и JAVA_HOME, используется JRE_HOME._ http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt – user454322

2

Linux на основе Tomcat6 должны иметь /etc/tomcat6/tomcat6.conf

# System-wide configuration file for tomcat6 services 
# This will be sourced by tomcat6 and any secondary service 
# Values will be overridden by service-specific configuration 
# files in /etc/sysconfig 
# 
# Use this one to change default values for all services 
# Change the service specific ones to affect only one service 
# (see, for instance, /etc/sysconfig/tomcat6) 
# 

# Where your java installation lives 
#JAVA_HOME="/usr/lib/jvm/java-1.5.0" 

# Where your tomcat installation lives 
CATALINA_BASE="/usr/share/tomcat6" 
... 
12

Если вы пользователь для Windows, поместите содержимое ниже в setenv.bat файл в том, что вы должны создать в Tomcat bin.

set JAVA_HOME=C:\Program Files\Java\jdk1.6.x 

Если вы Linux пользователя, поставить содержание ниже в setenv.sh файл, который необходимо создать в Tomcat бен каталог.

JAVA_HOME=/usr/java/jdk1.6.x 
2

У меня была та же проблема, моя ОС Windows 8, и я использую Tomcat 8, я просто редактировал setclasspath.летучая мышь файл в папку бен и установить JAVA_HOME и JRE_HOME как это ...

@echo от
...
...
набор «JRE_HOME =% ProgramFiles% \ Java \ jre8"
набора "JAVA_HOME =% ProgramFiles% \ Java \ jdk1.7.0_03"
...
...

и теперь он работает нормально для меня ......

4

Вы можете добавить setenv.sh в директорию с бен:

экспорт JAVA_HOME = $ (readlink -f/USR/bin/java | sed "s: bin/java ::")

и будет динамически изменяться при обновлении пакетов.

2

Для Debian дистрибутива мы можем переопределить настройки по умолчанию

/etc/default/tomcat6 

Установите JAVA_HOME указывающее на версию Java вы хотите.

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 
2

Я считаю, что это лучшая практика (Вы можете иметь много экземпляра Tomcat в одном компьютере, вы хотите каждый экземпляр Tomcat использовать другие Java Runtime Environment):

enter image description here

enter image description here

Это ручной внутренний файл: catalina.sh

# JRE_HOME  Must point at your Java Runtime installation. 
#     Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME 
#     are both set, JRE_HOME is used. 
Смежные вопросы