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