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 :

Chargement dynamique de classe et version de java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut Chargement dynamique de classe et version de java
    Bonjour,
    Je sais qu'il est possible de charger dynamiquement des classes en Java (même si je ne l'ai pas personnellement experimenté). Est ce que ce type de technique, associé à un test sur la version de la jvm employée permettrait d'interpreter du bytecode relatif au "niveau" de la jvm ? (Autrement dit tester son niveau, puis en fonction de celui-ci, lancer tel ou tel code contenant telle ou telle fonctionnalitée?)
    Et est ce une pratique courant ? Ou il y a t il une raison de ne pas le faire ?

    D'avance merci

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par TabrisLeFol
    Est ce que ce type de technique, associé à un test sur la version de la jvm employée permettrait d'interpreter du bytecode relatif au "niveau" de la jvm ? (Autrement dit tester son niveau, puis en fonction de celui-ci, lancer tel ou tel code contenant telle ou telle fonctionnalitée?)
    Je ne comprend pas ce que tu veux dire exactement ? Tu pourrais être plus précis ou donner un exemple concret ?

    a++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut je m'explique mal....
    Salut,
    (voici une reformulation)
    Par exemple, a partir de la 1.4, on peut, selon la platforme, faire du pleine écran. Si on a des clients ne disposant que d'une version anterieure (la 1.3 à priori), on ne peut donc pas inclure cette fonctionnalitée dans notre logiciel. Pourtant cette fonctionnalitée pourrait etre exploitée par certains clients.
    Il devrait etre possible alors de faire une classe qui utilisera cette fonctionnalitée. Cette classe ne pourra etre utilisée par les 1.3. Par contre si on peut tester la version de la jvm alors on pourrait charger certaines classes avec certaines fonctionnalitées (eg full screen) en fonction de la version du client.
    Cela c'est mon raisonnement théorique. Après cela est il technologiquement possible ? Et si c'est le cas, est ce que cela se fait ? Si non, pourquoi ?

    D'avance merci.

    PS : J'espere avoir été plus clair.

    PPS: Full screen est un exemple, je sais que la 1.6 a apporter d'autres fonctionnalitées, malheureusement, je ne connais pas suffisement cette version pour faire l'exemple dessus.

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par TabrisLeFol
    Salut,
    (voici une reformulation)
    Par exemple, a partir de la 1.4, on peut, selon la platforme, faire du pleine écran. Si on a des clients ne disposant que d'une version anterieure (la 1.3 à priori), on ne peut donc pas inclure cette fonctionnalitée dans notre logiciel. Pourtant cette fonctionnalitée pourrait etre exploitée par certains clients.
    Il devrait etre possible alors de faire une classe qui utilisera cette fonctionnalitée. Cette classe ne pourra etre utilisée par les 1.3. Par contre si on peut tester la version de la jvm alors on pourrait charger certaines classes avec certaines fonctionnalitées (eg full screen) en fonction de la version du client.
    Cela c'est mon raisonnement théorique. Après cela est il technologiquement possible ? Et si c'est le cas, est ce que cela se fait ? Si non, pourquoi ?

    D'avance merci.

    PS : J'espere avoir été plus clair.

    PPS: Full screen est un exemple, je sais que la 1.6 a apporter d'autres fonctionnalitées, malheureusement, je ne connais pas suffisement cette version pour faire l'exemple dessus.
    Donc, si j'ai bien compris, tu voudrais faire un test sur la verison de la JVM et en fonction de ce test appeller des méthodes par réfléxion sur des choses qui sont pas disponibles pour toutes les versions pour permettre de rester compatible. C'est bien ça ?

    Je pense que ça doit être possible. Mais est-tu sûr d'avoir besoin de cela ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Presque mais aucun raport avec la reflexion.
    Je definie une interface et une instance d'une classe implementant cette interface sera utilisée tout le long du programme.
    Cette instance provient de l'instanciation d'une classe chargée dynamiquement et ce en fonction de la version de la jvm. Ainsi vu du programme rien ne change réellement, cependant les fonctions de cette instance permettront d'utiliser les fonctionnalitées supportée par la jvm.

  6. #6
    Membre chevronné
    Avatar de N_I_C_S
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 450
    Par défaut
    Salut,
    Je ne crois pas qu'il soit nécessaire de charger dynamiquement des classes, etc... On peut très bien s'en tirer en implémentant plusieurs classes héritées d'un type IHM (pour reprendre l'exemple) et, selon la JVM, retourner l'IHM adaptée (pattern Builder).

Discussions similaires

  1. Chargement Dynamique de Class en Java
    Par castor21 dans le forum Général Java
    Réponses: 7
    Dernier message: 08/02/2010, 15h42
  2. "Chargement dynamique" de classe
    Par moutanakid dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2008, 16h37
  3. Erreur chargement dynamique de class
    Par rastakouair dans le forum Langage
    Réponses: 1
    Dernier message: 16/12/2007, 16h42
  4. [Classpath][Classloader]Chargement dynamique de classes
    Par vberetti dans le forum Général Java
    Réponses: 9
    Dernier message: 08/07/2005, 12h11
  5. [tomcat]chargement dynamique de classes depuis une webapp
    Par alphamax dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/03/2004, 09h59

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