web-dev-qa-db-fra.com

Comment définir Java_HOME pour plusieurs instances Tomcat?

J'ai 2 projets Web Java. L'un fonctionne sur JDK 1.5 et l'autre sur JDK 1.6. Je souhaite exécuter les deux sur le même ordinateur, mais la variable d'environnement Java_HOME ne peut avoir qu'une seule valeur. Je souhaite définir Java_HOME pour chaque serveur Tomcat.

36
Chan Pye

placez un setenv.sh dans le répertoire bin avec

Java_HOME=/usr/Java/jdk1.6.0_43/
JRE_HOME=/usr/Java/jdk1.6.0_43/jre

ou une autre version de votre course.

40
HowRude

Une chose à faire serait de modifier le fichier catalina.sh (basé sur Unix) ou le fichier catalina.bat (basé sur Windows).

Dans chacun des scripts, vous pouvez définir certaines variables dont seuls les processus créés sous le shell hériteront. Donc, pour catalina.sh, utilisez la ligne suivante:

export Java_HOME="intented Java home"

Et pour les fenêtres utiliser

set Java_HOME="intented Java home"
20
bogertron

Si vous êtes un utilisateur Windows , placez le contenu ci-dessous dans un fichier setenv.bat que vous devez créer dans le répertoire Tomcat bin .

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

Si vous êtes un utilisateur Linux , placez le contenu ci-dessous dans un fichier setenv.sh que vous devez créer dans le répertoire Tomcat bin .

Java_HOME=/usr/Java/jdk1.6.x
13
STB Land

Notez également qu'il ne devrait y avoir aucun espace après =:

set Java_HOME=C:\Program Files\Java\jdk1.6.0_27
7
Ravi

Vous pouvez ajouter setenv.sh dans le répertoire bin avec:

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

et cela changera dynamiquement lorsque vous mettrez à jour vos paquets.

4
Paulo Fidalgo

Sous UNIX, j’avais ce problème, j’ai édité catalina.sh manuellement et entré

export Java_HOME=/usr/lib/jvm/Java-6-Sun-1.6.0.24
echo "Using Java_HOME:       $Java_HOME"

comme les 2 premières lignes. J'ai essayé de régler le Java_HOME dans /etc/profile mais cela n'a pas aidé.

Cela a finalement fonctionné.

3
rafeeq

Je pense que c'est une pratique recommandée (vous pouvez avoir plusieurs instances de Tomcat sur le même ordinateur, vous voulez par instance de Tomcat utiliser un autre environnement d'exécution Java):

 enter image description here

 enter image description here

Ceci est manuel dans le fichier: 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.
3
foobarfuu

J'ai eu le même problème, mon système d'exploitation est Windows 8 et j'utilise Tomcat 8, Je viens de modifier le fichiersetclasspath.batdans le dossier bin et de définir Java_HOME et JRE_HOMEaiment ceci. ..

@Écho off
...
...
set "JRE_HOME =% ProgramFiles%\Java\jre8"
set "Java_HOME =% ProgramFiles%\Java\jdk1.7.0_03"
...
...

et cela fonctionne bien pour moi maintenant ......

2
Tamil Selvan

Tomcat6 sous Linux devrait avoir /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"
...
2
KCD

Pour la distribution Debian, nous pouvons remplacer le paramètre par défaut

/etc/default/Tomcat6

Définissez le Java_HOME pointant vers la version Java souhaitée.

Java_HOME=/usr/lib/jvm/Java-7-openjdk-AMD64
2
Shinu

Juste une note...

Si vous ajoutez ce code à setclasspath.bat ou setclasspath.sh, il sera utilisé par tous les scripts de Tomcat que vous pourriez exécuter, plutôt que par Catalina.

La méthode pour définir la variable est celle décrite par l'autre.

0
Doug