web-dev-qa-db-fra.com

Exception lors de la compilation: mauvaise version 50.0, devrait être 49.0

Je travaille sur une application avec l'API JXL et lorsque j'ai essayé de compiler à l'aide d'IDE Eclipse, cela fonctionne bien et la même chose n'est pas la compilation lorsque j'essaie de compiler dans l'invite de commande et d'afficher l'exception ci-dessous.

Extract.Java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class)
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
import jxl.read.biff.BiffException;
                     ^
1 error

MODIFIER:

Je suis capable d'exécuter en utilisant JDK 1.6. Comme JDK 1.6 doit également être compatible avec les versions inférieures, pourquoi ne prend-il pas en charge les fichiers de classe compilés dans JDK 1.5.

38
i2ijeya

La bibliothèque que vous utilisez a été compilée avec Java 6

Votre compilateur est Java 5, c'est pourquoi il ne comprend pas ce format.

Pour résoudre ce problème, vous devez vous procurer une version 1.5 de la bibliothèque ou mettre à jour votre compilateur vers la version 1.6.

68
OscarRyz

Per http://www.jnode.org/node/2140 ...

Soumis par Stephen Crawley le vendredi 11/30/2007 - 07:15 .

Je soupçonne que vous mélangez du code compilé avec différentes versions de Java. La version de fichier de classe 50.0 est utilisée par Java 6.0 et 49.0 par Java 5.0 ..____.

Essayez de faire un "build clean" pour vous débarrasser de tous les fichiers de classe existants, suivis d'une compilation régulière .

JNode est développé avec Java 6.0 uniquement. La dernière fois que j'ai essayé, il n'a pas été créé avec Java 5.0 (alias 1.5). (C'est un problème avec le programme qui construit l'image de démarrage de JNode.)

Essayez de changer le constructeur dans Eclipse. Si vous utilisez la version 3.4, il s’agit de Projet - Propriétés - Compilateur Java - Activer les paramètres spécifiques au projet - Niveau de conformité du compilateur = 1.6. Vous aurez également besoin d'installer JRE 1.6.

3
atk

Vérifiez votre chemin de classe dans Eclipse et assurez-vous que c'est le même chemin de classe que celui que vous avez compilé dans la commande Invite.

1
JERiv

Cela signifie que vous avez compilé cette classe avec Java 6 et essayé de l'exécuter avec Java 5.

Solution :  

Si vous utilisez ant , exécutez les étapes ci-dessous dans le répertoire racine du projet

  1. fourmi propre
  2. fourmi déployer

Si vous utilisez Eclipse , juste Nettoyez l'espace de travail (supprimez les fichiers de classe compilés avec Java6)

1

il se peut que, dans vous IDE, vous pointez sur la dernière version de JDK, mais lorsque vous construisez votre programme en dehors de l'EDI (peut-être avec maven), votre Java_home est l'ancienne version de celle de votre IDE. 

0
Luthoz