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

avec Java Discussion :

[compatibilité] java incompatible entre versions ?


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut [compatibilité] java incompatible entre versions ?
    Bonjour,

    je viens d'avoir un problème de compatibilité entre deux versions de java. Est-ce normal ?
    (je travaille sous 1.506 et j'ai tenté de lancer le logiciel sous 1.4_12)

    merci

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    oui, java possède une comaptibilité ascendante (ce qui marche en 1.4 marche en 1.5), mais surement pas descendante
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    merci.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    maintenant la question épineuse, comment je m'en sors avec ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Exception in thread "main" java.lang.UnsupportedClassVersionError: MaClasse (Un
    supported major.minor version 49.0)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(Unknown Source)
            at java.security.SecureClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$100(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    car j'ai malheureusement besoin de rester en 1.4.2_12..

    merci

  5. #5
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par d_token
    car j'ai malheureusement besoin de rester en 1.4.2_12..
    Compile ton programme en 1.4.2 alors.
    La version 49.0 signifie que ça a été compilé en 1.5. Tu ne pourras donc pas lancer ton application telle quelle, il faut la recompiler en 1.4.2 (je crois me souvenir d'une option "-target" à placer dans la ligne de commande pour la compilation pour spécifier la version de JVM pour laquelle tu veux compiler les classes)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    merci de ta réponse

    je travaille sous éclipse, et je viens (enfin ;p) de finir de modifier mes classes (en fin de compte, c'est selectionner le bon jdk qui m'a pris du temps)
    (les modifs étaient : virer les <class> dans les déclarations de collections

    => un autre problème maintenant : "could not find the main class. Programm will exit"

    juste en changeant de JDK/JRE...

  7. #7
    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 plegat
    (je crois me souvenir d'une option "-target" à placer dans la ligne de commande pour la compilation pour spécifier la version de JVM pour laquelle tu veux compiler les classes)
    Le mieux est d'utiliser une version 1.4.2 pour le developpement !
    En effet l'option -target a elle seule ne permet pas de s'assurer de la compatibilité absolu du code généré (il faut en plus lui associé les classes de l'API correspondant à la version via le bootclasspath).

    a++

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    malheureusement, je crois qu'il y a eu un effet de bord désagréable suite au changement de JDK/JRE

    lorsque j'essaie de compiler sous commande dos, j'obtiens le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class file has wrong version 49.0, should be 48.0
    Please remove or make sure it appears in the correct subdirectory of the classpa
    th.
    ^^ le problème, est que la solution que j'ai trouvé partout ailleurs ne me convient pas du tout ( installer la version 1.5 de JRE)

  9. #9
    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
    Si tu as cette erreur en compilant, cela signifie surement que tu utilises encore des classes compilé pour du Java 5.0...

    Essayes de supprimer toutes tes fichiers *.class pour les regénérer et vérifies toutes tes librairies externes...

    a++

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    et bien il crie aussi sur la classe GBC que j'ai téléchargé de la FAQ, mais aussi sur celle la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    import graphiqueInterface.Fenetre;
    import graphiqueInterface.database.DataAccess;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
     
    public class ActionConnection implements ActionListener{
    	JTextField jtlogin;
    	JTextField jtpass;
     
    	public ActionConnection(JTextField _jtlogin,JTextField _jtpass ){
    		jtlogin=_jtlogin;
    		jtpass=_jtpass;
    	}
     
    	public void actionPerformed(ActionEvent arg0) {
    		try{
    			DataAccess dbTest = new DataAccess("",jtlogin.getText(),jtpass.getText());
    			dbTest.getTest();
    			new Fenetre(jtlogin.getText(),jtpass.getText());
     
    		}catch(Exception e){
    			JOptionPane.showMessageDialog(null, "Impossible de se connecter à la base de données. Vérifiez votre login et votre mot de passe", "Connexion impossible",JOptionPane.ERROR_MESSAGE);
    		}
     
     
     
    	}
     
    }
    lorsque j'essaie de compliler par ligne de commande MaClasse (sous eclipseil me dit juste qu'il ne trouve pas la classe main)

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2004
    Messages : 138
    Points : 125
    Points
    125
    Par défaut
    Juste un truc tu as deux programme que tu compile le principale et celui que tu utilise ou tu compile tout en un ?
    Car tu dois compiler les sources qui sont en 1.4.2 avec le JDK 1.5 puis ensuite compiler tout en 1.5 si ton programme a été programmer en 1.5...
    Sinon explique nous la procédure en détails...

    Pour mieux te former à Java voir les tutoriels et cours de formation Java : http://java.developpez.com/cours/

  12. #12
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par Shiftane
    Juste un truc tu as deux programme que tu compile le principale et celui que tu utilise ou tu compile tout en un ?
    Car tu dois compiler les sources qui sont en 1.4.2 avec le JDK 1.5 puis ensuite compiler tout en 1.5 si ton programme a été programmer en 1.5...
    Sinon explique nous la procédure en détails...
    Non, il a développé un programme en 1.5, et il doit absolument le faire tourner en 1.4.2.
    Donc tout recompiler en 1.4.2 (sinon ça marche pas!)

    Pour Eclipse, c'est à toi de lui spécifier la main class...
    Project > Clean (décocher "start a build automatically" si tu veux gérer ça toi-même) pour virer les fichiers *.class
    Run > Run As... > Java Application, et là tu lui dis qui est la main class

    Et comme l'a précisé adiGuba, vérifie que tu n'utilises pas des classes externes qui soient compilées en 1.5 (facilement vérifiable, le message d'erreur t'indique quelle classe pose le problème de version).
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    j'ai virer manuellement les .class (j'avais fait clean de mon projet, mais ca n'a pas été efficace on dirait) et voila ce qui se passe :
    "the import ...... cannot be resolved"

    dans les fichiers qui l'appellent

    et dans la classe en question :
    rien, pas d'erreur.

    (pour la procédure de compilation, j'ai choisi le JDK dans éclipse, et je ne compile qu'un seul programme consititué de plusieurs classes. Normalement, tout est compiler en 1.4)

  14. #14
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par d_token
    j'ai virer manuellement les .class (j'avais fait clean de mon projet, mais ca n'a pas été efficace on dirait)
    Comme je l'ai dit, il faut décocher "start a build automatically"... sinon il te recrée les *.class automatiquement après les avoir effacés!

    Citation Envoyé par d_token
    et voila ce qui se passe :
    "the import ...... cannot be resolved"
    Tu devrais pouvoir t'en sortir tout seul, là, non?
    Surtout si tu ne nous dit pas lequel!!!
    Ca serait pas un import spécifique 1.5 par hasard?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    il restait des erreurs dans le code (au sens 1.4 )

    je les ai corrigées (mises entre commentaire)
    et le programme compile sous invite de commande.

    mais dès que je lance le programme, il me ressort le
    Exception in thread "main" java.lang.NoClassDefFoundError: MaCLasse/class

  16. #16
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par d_token
    mais dès que je lance le programme, il me ressort le
    Exception in thread "main" java.lang.NoClassDefFoundError: MaCLasse/class
    [MODE=ironique]
    Tu le lances comment?
    Avec douceur ou pas?
    [/MODE]

    Plus sérieusement, on peut avoir les détails?
    Tous les détails....
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    alors, la c'est l'out de ma ligne de commande
    l'arborescence est :
    defaut
    MaClasse
    ActionConnection
    .....GUI
    ..........DATABASE
    ..........GUI2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    C:\Documents and Settings\user1\javaworkspace\Detective>javac MaClasse.java
     
    C:\Documents and Settings\user1\javaworkspace\MaClasse>java MaClasse.class
    Exception in thread "main" java.lang.NoClassDefFoundError: MaClasse/class
     
    C:\Documents and Settings\user1\javaworkspace\MaClasse>
    et mon classpath :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\Documents and Settings\user1\javaworkspace;C:\Documents and Settings\user1\Mes documents\librairies\Jdom\jdom-1.0\build\jdom.jar;C:\Documents and Settings\user1\javaworkspace\xmlya;.;C:\Documents and Settings\user1\javaworkspace\MaClasse\;C:\Documents and Settings\user1\javaworkspace\MaClasse\graphiqueInterface\database
    PS : eclipse me fait un joli fatal exception occured. Program will exit

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    sinon, rien à voir, mais je viens de créer un .JAR et tenter de l'exécuter.

    il me dit :

    Exception in thread "main" java.lang.Error: Do not use MaCLasse.setLayout() use
    MaClasse.getContentPane().setLayout() instead
    at javax.swing.JFrame.createRootPaneException(Unknown Source)
    at javax.swing.JFrame.setLayout(Unknown Source)
    at MaClasse.<init>(Detective.java:28)
    at MaClasse.main(Detective.java:59)

    ^^ ce qui a peut-être un rapport.


    Bon, CA MARCHE

    pour votre aide

    je m'en suis sorti en exécutant les .JAR et en modifiant la syntaxe au fur et à mesure

  19. #19
    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


    La syntaxe est "java" "nom_complet_de_la_classe" et PAS le nom du fichier...

    Si le ClassPath est correct et que la classe n'appartient à aucun package :
    Mais pourquoi se trouve-t-elle dans un répertoire nommé MaClasse ????

    a++

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 149
    Points : 73
    Points
    73
    Par défaut
    he bien, elle ne s'y trouve pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Compatibilité entre versions
    Par olibhear dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/02/2009, 14h51
  2. Compatibilité entre versions
    Par Domi2 dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/12/2007, 13h38
  3. Réponses: 3
    Dernier message: 02/05/2006, 13h27
  4. pb de compatibilite entre version access2000 et XP
    Par sharpeye dans le forum Access
    Réponses: 4
    Dernier message: 16/11/2005, 12h23
  5. compatibilité entre versions
    Par Loctar dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/07/2005, 16h45

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