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.
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.
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"
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
Notez également qu'il ne devrait y avoir aucun espace après =
:
set Java_HOME=C:\Program Files\Java\jdk1.6.0_27
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.
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é.
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):
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.
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 ......
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"
...
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
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.