J'obtiens cette erreur lorsque j'inclus une bibliothèque open source que j'ai dû compiler à partir des sources. Désormais, toutes les suggestions sur le Web indiquent que le code a été compilé dans une version et exécuté dans une autre version (du nouveau sur l'ancien). Cependant, je n'ai qu'une seule version de JRE sur mon système. Si j'exécute les commandes:
$ javac -version
javac 1.5.0_18
$ java -version
java version "1.5.0_18"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
Java HotSpot(TM) Server VM (build 1.5.0_18-b02, mixed mode)
et vérifie dans Eclipse les propriétés de la bibliothèque java, j'obtiens 1.5.0_18
Par conséquent, je dois conclure que quelque chose d'autre, interne à une classe elle-même, lance l'exception ?? Est-ce que c'est possible?
Réponses:
J'ai appris que les messages d'erreur comme celui-ci sont généralement corrects. Quand cela ne peut pas (dans votre esprit) être ce que l'erreur signalée indique, vous partez à la recherche d'un problème dans un autre domaine ... pour découvrir des heures plus tard que le message d'erreur d'origine était en effet correct.
Puisque vous utilisez Eclipse, je pense que Thilo a raison. La raison la plus probable pour laquelle vous recevez ce message est que l'un de vos projets compile des classes 1.6. Ce n'est pas grave si vous n'avez qu'un JRE 1.5 sur le système, car Eclipse a son propre compilateur (pas javac), et n'a besoin que d'un JRE 1.5 pour compiler les classes 1.6. Cela peut être bizarre, et un paramètre doit être décoché pour permettre cela, mais j'ai juste réussi à le faire.
Pour le projet en question, vérifiez les propriétés du projet (généralement Alt + Entrée), section Java Compiler. Voici une image d'un projet configuré pour compiler 1.6, mais avec seulement un JRE 1.5.
la source
Avez-vous essayé de faire un "nettoyage" complet, puis de le reconstruire dans Eclipse (Projet-> Nettoyer ...)?
Êtes-vous capable de compiler et d'exécuter avec "javac" et "java" directement à partir de la ligne de commande? Cela fonctionne-t-il correctement?
Si vous faites un clic droit sur votre projet, allez dans "Propriétés" puis allez dans "Chemin de construction Java", y a-t-il des entrées suspectes sous l'un des onglets? Il s'agit essentiellement de votre CLASSPATH.
Dans les préférences d'Eclipse, vous pouvez également vérifier la section "JRE installés" dans la section "Java" et vous assurer qu'elle correspond à ce que vous pensez qu'elle devrait.
Vous avez certainement soit un fichier .class périmé traînant quelque part, soit vous obtenez une incompatibilité au moment de la compilation et de l'exécution dans les versions de Java que vous utilisez.
la source
Avez-vous compilé avec Eclipse? Il utilise un compilateur différent (pas javac). Cela ne devrait pas entraîner cette erreur (si tout est configuré correctement), mais vous pouvez essayer de le compiler avec javac à la place.
Si cela a résolu le problème, essayez de voir si Eclipse a des paramètres de compilateur incorrects. Spécifiez-le cibler Java 5.
la source
J'ai également eu la même erreur. Raison pour laquelle je compilais le projet en utilisant Maven. JAVA_HOME pointait vers JDK7 et java 1.7 était donc utilisé pour la compilation et lors de l'exécution du projet, j'utilisais JDK1.5. La modification de l'entrée ci-dessous dans le fichier .classpath ou la modification de l'éclipse comme dans la capture d'écran a résolu le problème.
ou modifier les configurations d'exécution de l'éclipse comme
la source
Vérifiez également tous les fichiers jar de votre projet qui ont été compilés pour une version supérieure de Java. S'il s'agit de vos propres bibliothèques, vous pouvez résoudre ce problème en modifiant l'attribut de la version cible en javac
la source
Un autre scénario dans lequel cela pourrait se produire est lorsque vous lancez une instance d'éclipse (pour le débogage, etc.) à partir d'une éclipse hôte - auquel cas, modifier le niveau du projet ou la bibliothèque JRE sur le chemin de classe du projet seul n'aide pas. Ce qui compte, c'est le JRE utilisé pour lancer l'environnement d'éclipse cible.
la source
Vérifiez toujours l'évidence aussi. J'ai eu cette erreur une fois lorsque j'ai accidentellement saisi la mauvaise ressource pour l'action d'ajout et de suppression du serveur. Cela peut être facile à oublier.
la source
La suppression des fichiers de paramètres spécifiques au projet (espace de travail Eclipse / dossier de projet / .settings /) du dossier de projet fera également l'affaire. De toute évidence, nous devons nettoyer et construire un projet après la suppression.
la source
changer le projet pour utiliser java 1.7: Pour que cela fonctionne, procédez comme suit:
Ca ne fonctionne pas?
Ne fonctionne toujours pas?
dans le répertoire de votre projet: éditez .settings / org.eclipse.jdt.core.prefs> assurez-vous que votre niveau cible est appliqué
Bonne chance!
la source
J'ai résolu ce problème en changeant jre requis pour le serveur (dans mon cas, c'est tomcat). Depuis l'onglet Serveur dans eclipse, double-cliquez sur le serveur (afin d'ouvrir la page de configuration du serveur), cliquez sur Environnement d'exécution, puis changez JRE requis
la source