Pb chargement classe
Fermé
Utilisateur anonyme
-
27 oct. 2012 à 11:46
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 27 oct. 2012 à 18:48
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 27 oct. 2012 à 18:48
A voir également:
- Pb chargement classe
- Retrouver photo de classe gratuitement - Forum Réseaux sociaux
- Ou peut-on retrouver d'anciennes photos d'école et d'anciens élèves ? ✓ - Forum Loisirs / Divertissements
- Erreur dans le chargement des donnees vod - Forum Box et Streaming vidéo
- Copain d'avant photo de classe - Forum Réseaux sociaux
- Logitech g hub chargement infini ✓ - Forum Logiciels
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
27 oct. 2012 à 18:48
27 oct. 2012 à 18:48
Attention : il y a un piège insidieux avec la rétro-compatibilité.
En demandant de compiler avec Java 5, Eclipse exclut toutes les classes existant dans les versions 6 et 7, et compile un byte-code compatible Java 5.
Cependant, à l'exécution, Eclipse continue d'utiliser les classes de Java 7 car ce sont les seules dont il dispose, mais le comportement peut être différent.
Par exemple à la compilation on demande à utiliser une classe A.
Or il se trouve qu'en fait cette classe A va utiliser une classe B avec Java 7, mais une classe C avec Java 5. Donc à la compilation ça ne change rien, puisqu'on demande juste d'utiliser A. Mais à l'exécution Eclipse qui est sous Java 7 va utiliser B alors qu'un vrai programme Java 5 devrait utiliser C.
Ceci explique pourquoi cela peut fonctionner sous le Java 7 où il a été compilé, et planter sur le Java 6 de ton Mac... Car l'exécution est différente.
Ce qu'il faut faire ce n'est pas utiliser la rétro-compatibilité (c'est à dire compiler avec Java 7) mais utiliser un vrai JDK 5 pour compiler directement avec Java 5.
Cependant, je doute que cela règle totalement le problème, car tu as des bibliothèques complémentaires (Minecraft notamment) qui devront également être compatible avec la JDK 5, ce qui va être un peu dur à trouver, parce que Java 5 commence à dater un peu...
En demandant de compiler avec Java 5, Eclipse exclut toutes les classes existant dans les versions 6 et 7, et compile un byte-code compatible Java 5.
Cependant, à l'exécution, Eclipse continue d'utiliser les classes de Java 7 car ce sont les seules dont il dispose, mais le comportement peut être différent.
Par exemple à la compilation on demande à utiliser une classe A.
Or il se trouve qu'en fait cette classe A va utiliser une classe B avec Java 7, mais une classe C avec Java 5. Donc à la compilation ça ne change rien, puisqu'on demande juste d'utiliser A. Mais à l'exécution Eclipse qui est sous Java 7 va utiliser B alors qu'un vrai programme Java 5 devrait utiliser C.
Ceci explique pourquoi cela peut fonctionner sous le Java 7 où il a été compilé, et planter sur le Java 6 de ton Mac... Car l'exécution est différente.
Ce qu'il faut faire ce n'est pas utiliser la rétro-compatibilité (c'est à dire compiler avec Java 7) mais utiliser un vrai JDK 5 pour compiler directement avec Java 5.
Cependant, je doute que cela règle totalement le problème, car tu as des bibliothèques complémentaires (Minecraft notamment) qui devront également être compatible avec la JDK 5, ce qui va être un peu dur à trouver, parce que Java 5 commence à dater un peu...
doctormad
Messages postés
430
Date d'inscription
mercredi 28 novembre 2007
Statut
Membre
Dernière intervention
2 avril 2015
99
27 oct. 2012 à 17:58
27 oct. 2012 à 17:58
Eclipse est un nid à bug donc oui c'est probable, essaie un autre IDE.
Pour ce qui est de java les versions antérieures à la 7 ont des failles critiques de sécurité il est donc recommandé de ne pas les utiliser, en fait selon moi il faut arrêter d'utiliser java tout simplement, parce que demain ce sera la version 7 qui sera révélée comme faillible et c'est révélateur de la qualité apportée à sa vm.
Pour ce qui est de java les versions antérieures à la 7 ont des failles critiques de sécurité il est donc recommandé de ne pas les utiliser, en fait selon moi il faut arrêter d'utiliser java tout simplement, parce que demain ce sera la version 7 qui sera révélée comme faillible et c'est révélateur de la qualité apportée à sa vm.