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

Langage Java Discussion :

[Langage]Compilation et version du SDK


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut [Langage]Compilation et version du SDK
    Je suis en train de developper un framework qui doit pouvoir tourner avec un JRE en version 1.4.2.
    Je compile donc toutes mes sources avec le sdk 1.4.
    Ma question est la suivante, en terme de performances d'execution, y a-t-il une différence entre compiler en 1.4 et compiler avec une version supérieur (1.5 ou 1.6) et spécifié le paramètre de compil -source 1.4 pour garder la compat.
    Dans le second cas, bénéficie-t-on d'amélioration qui auraient été introduite dans le dernière version du SDK ?
    Dans le même ordre d'idée, est il possible de faire du code conditionnel à une version particulière du SDK utilisé. J'entend par là pouvoir utiliser par exemple des classes qui n'existe que dans la version 1.5 ou 1.6 du SDK, une sorte de ifdef mais en java.

    merci par avance.

  2. #2
    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 Guybrush Voir le message
    Ma question est la suivante, en terme de performances d'execution, y a-t-il une différence entre compiler en 1.4 et compiler avec une version supérieur (1.5 ou 1.6) et spécifié le paramètre de compil -source 1.4 pour garder la compat.
    La plupart des améliorations sont dans la JVM et ses librairies. Donc même si tu compiles avec un JDK plus récent cela ne changera rien ou presque...

    Par contre compiler avec -source 1.4 ne suffit pas ! Cela permet simplement d'indiquer la version du code source qui sera compilé et d'y respecter les règles (par exemple enum n'est pas un mot-clef en java 1.4).

    Il faut également utiliser -target 1.4 pour spécifier la version de compatibilité pour laquelle le bytecode doit être généré...

    Mais il faut surtout compiler en utilisant l'API de la version de destination avec l'option -bootclasspath ..chemin_vers_jdk1.4_/lib/rt.jar. Sinon tu peux te retrouver avec des erreurs de link à l'exécution...

    Bref il faut mieux compiler avec le JDK correspondant à la version minimum sur laquelle on veut exécuter l'application...


    Citation Envoyé par Guybrush Voir le message
    Dans le second cas, bénéficie-t-on d'amélioration qui auraient été introduite dans le dernière version du SDK ?
    Oui : un programme Java 1.4 exécuté sur une JVM 1.6 bénéficiera de la plupart des améliorations de la nouvelle JVM.

    Citation Envoyé par Guybrush Voir le message
    Dans le même ordre d'idée, est il possible de faire du code conditionnel à une version particulière du SDK utilisé. J'entend par là pouvoir utiliser par exemple des classes qui n'existe que dans la version 1.5 ou 1.6 du SDK, une sorte de ifdef mais en java.
    Non il n'y a rien de tel...
    Tu peux faire une série de if/else sur la version et appeler des méthodes différentes (mais tu dois compiler cette classe avec la dernière version de l'API ce qui peut poser des problèmes) ou utiliser la réflection (mais c'est lourd).

    A la rigueur si tu déploie via Java Web Start tu peux déployer plusieurs versions de la même classe en spécifiant les versions dans le JNLP...
    Tu peut surement faire la même chose dans une appli normale en utilisant un classloader spécifique mais à ma connaissance il faut gérer cela "à la main"...

    a++

Discussions similaires

  1. Cherche : Langage Compilé Rapide !
    Par kedare dans le forum Langages de programmation
    Réponses: 62
    Dernier message: 06/05/2006, 22h52
  2. Problème de compilation avec Microsoft Platform SDK
    Par VenusX117 dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 09/11/2005, 09h57
  3. [langage] Compilation ???
    Par Slippers dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2005, 14h44
  4. [langage] compiler un prog perl
    Par mike21 dans le forum Langage
    Réponses: 20
    Dernier message: 23/11/2004, 17h57
  5. Réponses: 2
    Dernier message: 05/12/2002, 16h55

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