web-dev-qa-db-fra.com

Comment changer Java utilisée par TOMCAT?

J'ai Java 1.6 et Tomcat 5.5 installés sur mon système.

Mais Tomcat 5.5 accède à Java 1.5 et, par conséquent, le résultat est l'erreur Bad version number in .class file en cours d’exécution Java) avec JSP.

Comment puis-je changer la version de Tomcat à Java 1.6?

MISE À JOUR

J'ai essayé de changer la machine virtuelle Java que le Tomcat5w.exe pointe vers la version 1.6 et maintenant je suis sur le Bad version in .class file Erreur. Mais maintenant, j'obtiens l'erreur suivante.

exception

org.Apache.jasper.JasperException
org.Apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.Java:498)
org.Apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.Java:411)
org.Apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.Java:308)
org.Apache.jasper.servlet.JspServlet.service(JspServlet.Java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:729)

root cause

Java.lang.NullPointerException
myfirst.SearchLink.checkURL(SearchLink.Java:20)
org.Apache.jsp.Test_jsp._jspService(Test_jsp.Java:52)
org.Apache.jasper.runtime.HttpJspBase.service(HttpJspBase.Java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:729)
org.Apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.Java:369)
org.Apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.Java:308)
org.Apache.jasper.servlet.JspServlet.service(JspServlet.Java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:729)

Quelle pourrait être la cause première?

42
LGAP

Lorsque vous ouvrez catalina.sh/catalina.bat, vous pouvez voir:

Conditions préalables pour les variables d'environnement

Java_HOME Doit pointer sur votre Java installation du kit de développement.

Donc, définissez votre variable d'environnement Java_HOME pour pointer vers Java 6. Assurez-vous également que JRE_HOME pointe sur la même cible, si elle est définie.

Mise à jour: puisque vous êtes sous Windows, voir ici pour savoir comment gérer vos variables d'environnement

36
Bozho

Vous pouvez modifier l’emplacement du JDK ou du JRE en procédant comme suit:

  1. ouvrez le terminal ou cmd.
  2. allez au [Tomcat-home]\bin répertoire.
    ex: c:\Tomcat8\bin
  3. écrivez la commande suivante: Tomcat8W //ES//Tomcat8
  4. ouvrira la boîte de dialogue, sélectionnez l'onglet onglet Java (volet supérieur).
  5. changez la valeur de la machine virtuelle Java.
  6. cliquez OK .

note: dans Apache TomEE, les mêmes étapes, mais step (3) la commande doit être: TomEE //ES

15
Hazim

Dans Eclipse, il est très facile de diriger Tomcat vers une nouvelle machine virtuelle Java (dans cet exemple, JRE6). Mon problème était que je ne pouvais pas trouver où le faire. Voici le truc:

  1. Dans le menu principal d'Eclipse fichier [~ # ~] [~ # ~], sélectionnez NOUVEAU , -> Autre
  2. ... sur le nouveau serveur: sélectionnez un assistant , sélectionnez: Serveur -> Serveur = ... cliquez SUIVANT
  3. . dans la fenêtre Nouveau serveur: définissez un nouveau serveur , sélectionnez Apache> Tomcat 7 Server
  4. .. maintenant cliquez sur la ligne en bleu et soulignée intitulée: Configurer les environnements d'exécution
  5. dans la fenêtre Server Runtime Environments ,
  6. ..select Apache, développez-le (cliquez sur la flèche à gauche), sélectionnez Tomcat v7., puis cliquez sur EDIT .
  7. vous verrez une fenêtre appelée ( EDIT SERVER ENVIRONMENT: Tomcat SERVER
  8. Sur cet écran il y a un pulldown intitulé JRE.
  9. Vous devriez trouver votre JRE dans la liste JRE1.6.0.. Sinon, utilisez le bouton Installé JRE.
  10. Sélectionnez le JRE souhaité. Cliquez sur le bouton FINISH .
  11. Quittez gracieusement, dans la fenêtre Serveur: Environnements d'exécution serveur , cliquez OK
  12. dans le nouveau serveur: définissez une nouvelle fenêtre de serveur , appuyez sur SUIVANT
  13. dans la fenêtre Nouveau serveur: Ajouter et supprimer , sélectionnez des applications et installez-les sur le serveur.
  14. dans la fenêtre Nouveau serveur: ajouter et supprimer , cliquez Terminer

C'est tout. Intéressant, seules les étapes 7 à 10 semblent avoir de l'importance et elles modifieront le JRE utilisé sur tous les serveurs que vous avez précédemment définis pour utiliser Tomcat v7.0. La suite des étapes ne concerne que le fait que je ne trouve aucun autre moyen d’accéder à l’écran sauf en définissant un nouveau serveur. Est-ce que quelqu'un d'autre connaît un moyen plus facile?

12
Jalkin

Si vous utilisez les scripts standard pour lancer Tomcat (c'est-à-dire que vous n'avez pas installé Tomcat en tant que service Windows), vous pouvez utiliser le fichier setenv.bat pour définir votre version de JRE_HOME.

Sous Windows, créez le fichier %CATALINA_BASE%\bin\setenv.bat, avec contenu:

set "JRE_HOME=%ProgramFiles%\Java\jre1.6.0_20"

exit /b 0

Et ça devrait être ça.

Vous pouvez le tester avec% CATALINA_BASE%\bin\configtest.bat (Avertissement: je l’ai seulement vérifié avec une installation Tomcat7).

Lectures supplémentaires:

11
Nick Grealy

Sur Linux, Tomcat7 a un fichier de configuration situé à l’adresse:

/etc/sysconfig/Tomcat7

... où les configurations spécifiques au serveur doivent être effectuées. Vous pouvez définir la variable d'environnement Java_HOME ici sans avoir besoin de créer un profil.d/script.

Cela a fonctionné pour moi.

4
paiego

Il y a plusieurs bonnes réponses ici, mais je voulais en ajouter une, car cela pourrait être utile aux utilisateurs comme moi qui ont installé Tomcat en tant que service sur une machine Windows.

Option 3 ici: http://www.codejava.net/servers/Tomcat/4-ways-to-change-jre-for-Tomcat

En gros, ouvrez tomcatw.exe et pointez Tomcat sur la version de la machine virtuelle à utiliser, puis redémarrez le service. Assurez-vous que vos applications déployées fonctionnent toujours aussi.

0
Michael