Java VerifyError
Résolu/Fermé
A voir également:
- Java.lang.verifyerror: bad type on operand stack
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Java apk - Télécharger - Langages
- Scanf en java ✓ - Forum Java
- Java heap space ✓ - Forum Java
2 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
13 mai 2015 à 22:22
13 mai 2015 à 22:22
Bonjour,
C'est pour moi toujours un problème de version :
Il doit y avoir confusion entre l'interface MetricsSystem dont hérite l'enum DefaultMetricsSystem (version r1.2.1 par exemple) et l'ancienne public abstract class MetricsSystem (version r0.23.11 par exemple) que ne peux pas étendre DefaultMetricsSystem puisque c'est un enum...
Du coup l'assignation
Il faudrait identifier quel jar possède l'ancienne dépendance de MetricsSystem et le mettre plus bas dans le classpath, derrière le jar qui possède la bonne dépendance MetricsSystem (qui possède probablement aussi DefaultMetricsSystem). Comme ça, le deuxième chargement sera ignoré et c'est la bonne version de MetricsSystem qui sera utilisée.
Remarque : pour gérer tes dépendances sans (trop) se casser la tête, tu devrais regarder du côté de Maven. (Débuter avec Maven)
C'est pour moi toujours un problème de version :
Type 'org/apache/hadoop/metrics2/lib/DefaultMetricsSystem' (current frame, stack[2]) is not assignable to 'org/apache/hadoop/metrics2/MetricsSystem'
Il doit y avoir confusion entre l'interface MetricsSystem dont hérite l'enum DefaultMetricsSystem (version r1.2.1 par exemple) et l'ancienne public abstract class MetricsSystem (version r0.23.11 par exemple) que ne peux pas étendre DefaultMetricsSystem puisque c'est un enum...
Du coup l'assignation
MetricsSystem metrics = DefaultMetricsSystem.INSTANCEest invalide à l'exécution.
Il faudrait identifier quel jar possède l'ancienne dépendance de MetricsSystem et le mettre plus bas dans le classpath, derrière le jar qui possède la bonne dépendance MetricsSystem (qui possède probablement aussi DefaultMetricsSystem). Comme ça, le deuxième chargement sera ignoré et c'est la bonne version de MetricsSystem qui sera utilisée.
Remarque : pour gérer tes dépendances sans (trop) se casser la tête, tu devrais regarder du côté de Maven. (Débuter avec Maven)