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?
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
Vous pouvez modifier l’emplacement du JDK ou du JRE en procédant comme suit:
[Tomcat-home]\bin
répertoire.c:\Tomcat8\bin
Tomcat8W //ES//Tomcat8
note: dans Apache TomEE, les mêmes étapes, mais step (3) la commande doit être: TomEE //ES
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:
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?
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:
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.
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.