Подтвердить что ты не робот

Как установить JAVA_HOME для нескольких экземпляров Tomcat?

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

4b9b3361

Ответ 1

поместите setenv.sh в каталог bin с помощью

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

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

Ответ 2

Одна вещь, которую вы могли бы сделать, это изменить каталину .sh(на основе Unix) или на catalina.bat(на основе Windows).

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

export JAVA_HOME="intented java home"

И для использования Windows

set JAVA_HOME="intented java home"

Ответ 3

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

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

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

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

Ответ 4

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

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

Ответ 5

Вы можете добавить setenv.sh в каталог bin:

export JAVA_HOME = $(readlink -f/usr/bin/java | sed "s: bin/java::" )

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

Ответ 6

В 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, но это не помогло.

Это сработало наконец.

Ответ 7

Основанный на 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"
...

Ответ 8

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

@echo off
...
...
set "JRE_HOME =% ProgramFiles%\Java\jre8"
установить "JAVA_HOME =% ProgramFiles%\Java\jdk1.7.0_03"
...
...

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

Ответ 9

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

/etc/default/tomcat6

Установите JAVA_HOME, указывая на нужную версию java.

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

Ответ 10

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

введите описание изображения здесь

введите описание изображения здесь

Это ручной файл внутри файла: 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.

Ответ 11

Просто примечание...

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

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