IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

java card error:monpackage.MonApplet:unsupported class file format of version 50.0


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 98
    Points : 55
    Points
    55
    Par défaut java card error:monpackage.MonApplet:unsupported class file format of version 50.0
    salut
    voila je suis entrain de suivre le tutoriel sur le javacard -http://julienb.developpez.com/tutori...introjavacard/
    mais à Outils de simulation
    quand je clique (clic droit) sur le package monpackage, sélectionner Java Card Tools
    puis Generate Script
    j'ai un message d'erreur
    Generate CAP(monpackage) terminated with error
    et aussi
    error:monpackage.MonApplet:unsupported class file format of version 50.0
    s'il vous plait vous avez pas une solution
    merci d'avance

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 502
    Points
    15 502
    Par défaut
    Ce message veux dire que tu utilises une version majeure du JRE plus ancienne que le jdk qui a servi à compiler.
    La version de classe 50.0 correspond a Java 6.0 : Il faudrait que tu utilises un JRE 6.0

    Si tu ne peux pas changer de JRE. Tu peux utiliser un JDK plus ancien ou forcer ton jdk a générer le code compatible avec les version antérieure.
    Par exemple, pour faire du code compatible avec le JDK 1.4 il faut ajouter l'option "-target 1.4" a la ligne de commande javac. Mais tu ne pourras pas du coup bénéficier des nouvautés de java 6.0

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Uther Voir le message
    Si tu ne peux pas changer de JRE. Tu peux utiliser un JDK plus ancien ou forcer ton jdk a générer le code compatible avec les version antérieure.
    Par exemple, pour faire du code compatible avec le JDK 1.4 il faut ajouter l'option "-target 1.4" a la ligne de commande javac. Mais tu ne pourras pas du coup bénéficier des nouvautés de java 6.0
    Attention car l'option -target peut s'avérer tout aussi problématique, voir même plus. En effet cela permet uniquement de changer le format du bytecode généré, mais en aucun cas de s'assurer que le code respectent bien l'API correspondante.

    En clair le compilateur pourra générer du code utilisant des classes ou méthodes de son API mais qui sont inexistante dans la version ciblé par le target.


    Prenons un exemple, avec un JDK 1.6 ce code compile parfaitement, y compris en utilisant -target 1.5 et -source 1.5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Main {
     
    	public static void main(String[] args) {
    		String value = "Hello";
    		System.out.println( "isEmpty():" + value.isEmpty() );
    	}
    }
    Il fonctionne également parfaitement lorsqu'on l'exécute avec une JVM 1.6... Par contre il ne marche pas sur une JVM 1.5 !!!

    En effet la méthode isEmpty() n'est apparut que dans Java 1.6, et la JVM 1.5 ne peut donc pas l'exécuter ce qui génère une NoSuchMethodError...


    Bref c'est même pire à mon avis car l'exception ne survient pas forcément au début du programme mais n'importe quand. Et le moindre appel de méthode anodin peut tout casser


    Pour compiler proprement avec -target il faut en plus utiliser -bootclasspath pour le faire pointer vers le fichier rt.jar de la JVM correspondante.

    La meilleure solution reste quand même d'utiliser le JDK de la version minimal que l'on souhaite supporté...


    a++

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    merci
    voila je crois que j'ai une autre solution c'est d'utiliser la version 3, de javaCard au lieu de javacard 2(celle utilisé dans le tutoriel)
    ça marche ca ???

    et merci encore de la repense

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    merci adiGuba, Uther
    mais j'ai rien compris (pas d'insulte ) vous pouvez m'expliquer un peu comment faire pour faire marcher
    s'il vous pait ??

  6. #6
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 502
    Points
    15 502
    Par défaut
    Je ne peux pas t'aider car je ne connais pas la technologie Javacard, mais il faut que tu regardes la doc de ta version de JavaCard pour savoir quelles versions du JDK est compatible.

Discussions similaires

  1. Erreur : class file has wrong version 49.0, should be 48.0
    Par djolof dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 02/01/2013, 15h33
  2. Besoin d'aide : "class file has wrong version"
    Par e-zaz dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 21/02/2011, 16h06
  3. Problème web Service: class file has wrong version!
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/08/2010, 10h35
  4. class file has wrong version 50.0, should be 49.0
    Par Brunettia dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 20/01/2010, 09h23
  5. API jackcess-1.1.3 error class file has wrong version 49.0
    Par dalio2579 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 22/03/2006, 00h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo