2009-11-09 31 views
32

Tengo 2 proyectos web de Java. Uno se ejecuta en JDK 1.5 y el otro se ejecuta en JDK 1.6. Quiero ejecutar ambos en la misma computadora, pero la variable de entorno JAVA_HOME solo puede tener un valor. Quiero configurar JAVA_HOME para cada servidor Tomcat.Cómo configurar JAVA_HOME para múltiples instancias de Tomcat?

+0

pregunta relacionada (para Linux): http://askubuntu.com/questions/154953/specify-jdk-for-tomcat7 –

Respuesta

19

Una cosa que usted podría hacer sería modificar el catalina.sh (Unix basa) o la catalina.bat (basado en Windows).

Dentro de cada una de las secuencias de comandos que se pueden establecer ciertas variables que sólo los procesos creados bajo el caparazón heredarán. Así que para catalina.sh, utilice la siguiente línea:

export JAVA_HOME="intented java home" 

Y para las ventanas utilizan

set JAVA_HOME="intented java home" 
+1

no es la versión de Windows supone que difieren de la versión de Unix? No soy un chico por lotes, pero pensé que estaba 'listo', ¿o estoy saliendo conmigo mismo? –

+1

Estoy usando Windows XP y he agregado la línea "export JAVA_HOME =" C: \ Program Files \ Java \ jdk1.6.0_12 "al principio del archivo Tomcat/bin/catalina.bat Pero Tomcat no puede iniciar Herr es una parte de mi archivo rem CATALINA_HOME Guess si no se define export JAVA_HOME = "C: \ archivos de programa \ Java \ jdk1.6.0_12" conjunto JAVA_OPTS =% JAVA_OPTS% -Xmx512m conjunto CURRENT_DIR =% cd% si no "% CATALINA_HOME%" == "" goto gotHome establecer CATALINA_HOME =% CURRENT_DIR% si existe "% CATALINA_HOME% \ bin \ catalina.bat" goto okHome –

+0

Ah. Mal uso de copiar y pegar! No quise poner de exportación para la versión de windows. Ry4an era correcta en ese conjunto es el comando correcto. º Actualización e respuesta. – bogertron

7

Además, tenga en cuenta que no debe haber ningún espacio después =:

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

en UNIX he tenido este problema, he editado catalina.sh manualmente y entré

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

como las primeras 2 líneas. Intenté configurar el JAVA_HOME en /etc/profile pero no sirvió.

Esto funcionó finalmente.

0

Sólo una nota ...

Si se agrega que el código de setclasspath.bat o setclasspath.sh, que en realidad será utilizado por todos los guiones de Tomcat que podía correr, en lugar de Catalina.

El método de fijación de la variable es como los otros de han descrito.

36

lugar un setenv.sh en el directorio bin con

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

o un otra versión de su funcionamiento.

+2

No es necesario agregar 'JAVA_HOME' y' JRE_HOME'. _Si se especifican JRE_HOME y JAVA_HOME, se utiliza JRE_HOME. http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt – user454322

2

Linux basada Tomcat6 debe tener /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

Si usted es un usuariode Windows, poner el contenido a continuación en un archivo setenv.bat que debe crear en Tomcat bin directorio.

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

Si usted es un usuarioLinux, poner el contenido a continuación en un archivo setenv.sh que debe crear en Tomcat bin directorio.

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

que tenían el mismo problema mi sistema operativo es Windows 8 y estoy usando Tomcat 8, que acaba de editar el setClassPath .bate archivo en la carpeta bin y establecer JAVA_HOME y JRE_HOME así ...

@echo off
...
...
conjunto "JRE_HOME =% Archivos de programa% \ Java \ jre8"
conjunto "JAVA_HOME =% Archivos de programa% \ Java \ jdk1.7.0_03"
...
...

y funciona muy bien para mí ahora ......

4

Puede añadir setenv.sh en el directorio bin con:

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

y cambiará dinámicamente cuando actualice sus paquetes.

2

Para Debian distribución que pueden anular el valor por defecto a través de

/etc/default/tomcat6 

Ajuste el JAVA_HOME apuntando a la versión de Java que desea.

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

Creo que esta es una buena práctica (Es posible que tenga muchas instancia de Tomcat en el mismo equipo, que desea por ejemplo Tomcat usar otro entorno de ejecución de Java):

enter image description here

enter image description here

Este es el archivo en el interior del manual: 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. 
Cuestiones relacionadas