Lorsque j'ai créé une application de servlet dans Eclipse et l'ai déployée sur VPS, l'exception suivante s'est produite.
javax.servlet.ServletException: Error instantiating servlet class [servlet.LoginServlet]
La version JDK d'Eclipse et la version JRE de Tomcat ne correspondaient pas, ce qui empêchait Tomcat d'exécuter les fichiers de classe. (Si la version Java au moment de la compilation est supérieure à la version Java au moment de l'exécution, une exception semble se produire.)
Journal des erreurs
Cause première
java.lang.UnsupportedClassVersionError:
servlet/LoginServlet has been compiled by a more recent version of the Java Runtime (class file version 55.0),
this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class [servlet.LoginServlet])
~ Abrégé ci-dessous ~
Version JRE | Version du fichier de classe |
---|---|
Java 8 | 52.0 |
Java 9 | 53.0 |
Java 10 | 54.0 |
Java 11 | 55.0 |
Java 12 | 56.0 |
Java 13 | 57.0 |
Java 14 | 58.0 |
Java 15 | 59.0 |
Dans ce cas, l'application a été compilée avec la version 55.0 (Java 11), mais en essayant de s'exécuter avec la version 52.0 (Java 8).
Mettez à jour la version côté Tomcat ou abaissez la version côté Eclipse. (J'ai décidé de changer le côté Eclipse cette fois.)
Lorsque vous passez de la fenêtre Eclipse à Fenêtre> Paramètres '', l'écran de configuration s'affiche. Lorsque vous passez à la page
Java> Compiler`
, il y a un élément appelé
Niveau de conformité du compilateur '' '' du JDK, alors changez-le en `` 1.8 ''.
nom du projet (clic droit)> propriété` ``, alors changez-le ici.https://stackoverflow.com/questions/47457105/class-has-been-compiled-by-a-more-recent-version-of-the-java-environment http://www.ne.jp/asahi/hishidama/home/tech/java/version.html https://jpn.itlibra.com/article?id=21118
Recommended Posts