2009-11-09 22 views
32

Ho 2 progetti Web Java. Uno gira su JDK 1.5 e l'altro gira su JDK 1.6. Voglio eseguirli entrambi sullo stesso computer, ma la variabile di ambiente JAVA_HOME può avere solo un valore. Voglio impostare JAVA_HOME per ogni server Tomcat.Come impostare JAVA_HOME per più istanze di Tomcat?

+0

Domanda correlata (per Linux): http://askubuntu.com/questions/154953/specify-jdk-for-tomcat7 –

risposta

19

Una cosa che potresti fare sarebbe modificare catalina.sh (basato su Unix) o catalina.bat (basato su Windows).

All'interno di ciascuno degli script è possibile impostare determinate variabili che erediteranno solo i processi creati nella shell. Così, per catalina.sh, utilizzare la seguente riga:

export JAVA_HOME="intented java home" 

e per Windows utilizzano

set JAVA_HOME="intented java home" 
+1

La versione di Windows non dovrebbe differire dalla versione unix? Non sono un tipo in batch, ma ho pensato che fosse "set", o sono uscito con me stesso? –

+1

Sto usando Windows XP e ho aggiunto la riga "export JAVA_HOME =" C: \ Programmi \ Java \ jdk1.6.0_12 "all'inizio del file Tomcat/bin/catalina.bat Ma Tomcat non può iniziare Herr è una parte del mio file rem Indovina CATALINA_HOME se non definito export JAVA_HOME = "C: \ Program Files \ Java \ jdk1.6.0_12" set JAVA_OPTS =% JAVA_OPTS% -Xmx512m set CURRENT_DIR =% cd% se non "% CATALINA_HOME%" == "" goto gotHome set CATALINA_HOME =% CURRENT_DIR% se esiste "% CATALINA_HOME% \ bin \ catalina.bat" goto okHome –

+0

Ah. Uso diabolico della copia incolla! Non intendevo metti l'esportazione per la versione di Windows. Ry4an era corretto in quel set è il comando corretto e risposta. – bogertron

7

inoltre, notare che non ci dovrebbe essere alcun spazio dopo =:

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

In UNIX ho avuto questo problema, ho modificato catalina.sh manualmente e inserito

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

come le prime 2 linee. Ho provato a impostare il JAVA_HOME in /etc/profile ma non è stato d'aiuto.

Questo ha funzionato alla fine.

0

Solo una nota ...

Se si aggiunge che il codice per setclasspath.bat o setclasspath.sh, sarà effettivamente essere utilizzato da tutti gli script di Tomcat si potrebbe correre, piuttosto che solo Catalina.

Il metodo per impostare la variabile è come l'altro ha descritto.

36

posto un setenv.sh nella directory bin con

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

o un altra versione vostra corsa.

+2

Non c'è bisogno di aggiungere 'JAVA_HOME' e' JRE_HOME'. _Se sono specificati JRE_HOME e JAVA_HOME, viene utilizzato JRE_HOME._ http://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt – user454322

2

Linux basata Tomcat6 dovrebbe avere /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

Se sei un utentedi Windows, inserire il contenuto di seguito in un file setenv.bat che si deve creare nella directory Tomcat bin.

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

Se sei un utenteLinux, inserire il seguente contenuto in un file disetenv.sh che è necessario creare in Tomcat bin directory.

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

Ho avuto lo stesso problema mio sistema operativo è Windows 8 e sto usando Tomcat 8, ho appena modificato il setclasspath .bat file nella cartella bin e impostare JAVA_HOME e JRE_HOME così ...

@echo off
...
...
set "JRE_HOME =% Programmi% \ Java \ jre8"
set "JAVA_HOME =% Programmi% \ Java \ jdk1.7.0_03"
...
...

e funziona bene per me, ora ......

4

È possibile aggiungere setenv.sh nella directory bin con:

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

e cambierà dinamicamente quando si aggiornano i pacchetti.

2

Per Debian distro possiamo ignorare l'impostazione di default tramite

/etc/default/tomcat6 

Impostare il JAVA_HOME punta alla versione Java che si desidera.

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

Credo che questa è una pratica migliore (Si può essere hanno molti istanza di Tomcat nel computer stesso, si vuole per esempio Tomcat utilizzare altri Java Runtime Environment):

enter image description here

enter image description here

Questo è il file interno manuale: 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. 
Problemi correlati