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 :

import dynamique classe


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Par défaut import dynamique classe
    Bonjour.

    J'ai un casse tête à vous proposez : importer une classe mais dont le classpath est connu qu'à l'exécution. Pour faire plus clair, je fais vous expliquer ce que je souhaite :

    Normalement lorsque l'on veut utiliser une classe, on l'importe classiquement en dur dans le code (import unPackage.uneClasse . Seulement la classe que je souhaite utiliser est générée en plusieurs exemplaires dans des packages/répertoires différents. Ce n'est seulement qu'à l'exécution que la version de la classe à utiliser est connue.

    Il existe la solution d'une classe unique initialisée à l'exécution et importée statiquement. Mais ce que j'aimerai vraiment faire c'est une classe qui aurait la visibilité les classes System, String, Integer, ... (celles là sont toujours accessibles sans import ...).

    Merci d'avance.

  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,


    Heu... c'est pas très clair

    Citation Envoyé par raggadoll Voir le message
    J'ai un casse tête à vous proposez : importer une classe mais dont le classpath est connu qu'à l'exécution.
    Le classpath ou le nom de la classe ???

    Citation Envoyé par raggadoll Voir le message
    Normalement lorsque l'on veut utiliser une classe, on l'importe classiquement en dur dans le code (import unPackage.uneClasse . Seulement la classe que je souhaite utiliser est générée en plusieurs exemplaires dans des packages/répertoires différents. Ce n'est seulement qu'à l'exécution que la version de la classe à utiliser est connue.
    Un Class.forName() devrait amplement suffire pour cela si la classe est bien présente dans le classpath. Si ce n'est pas le cas il faudra passer par un URLClassLoader pour charger le répertoire/jar contenant ta classe...


    Citation Envoyé par raggadoll Voir le message
    Il existe la solution d'une classe unique initialisée à l'exécution et importée statiquement. Mais ce que j'aimerai vraiment faire c'est une classe qui aurait la visibilité les classes System, String, Integer, ... (celles là sont toujours accessibles sans import ...).
    Là je ne comprend pas ce que tu veux dire exactement !?

    a++

  3. #3
    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
    Si tu veux qu'elle soit automatique importé comme c'est le cas des classes System, String, Integer.... Ce n'est pas possible.

    Si tu veux ajouter dynamiquement des ressources après l'exécution de ton programme, soit tu crées un nouveau ClassLoader soit tu ajoutes les éléments directement dans le ClassLoader système, ce qui est faisable avec un petit hack.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Par défaut
    Citation Envoyé par adiGuba Voir le message

    Le classpath ou le nom de la classe ???
    Voui, c'est pas clair (écrire un post le matin, quelle folie). Le nom de la classe et son package ne sont pas connus au moment de la compilation, donc pas possible de faire un import ... ; dans mon code.

    Citation Envoyé par adiGuba Voir le message
    Un Class.forName() devrait amplement suffire pour cela si la classe est bien présente dans le classpath. Si ce n'est pas le cas il faudra passer par un URLClassLoader pour charger le répertoire/jar contenant ta classe...
    Effectivement, la solution serait d'utiliser un class loader et de passer en argument le chemin de la classe au moment de l'exécution + une interface dont l'import est possible pour utiliser cette classe.

    Merci de vos réponses.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    merci d'utiliser le bouton ci dessous la prochaine fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Import de class dynamique
    Par sylverspoon dans le forum Langage
    Réponses: 4
    Dernier message: 13/11/2008, 15h30
  2. [C#]Importer une classe
    Par bolo dans le forum ASP.NET
    Réponses: 15
    Dernier message: 09/11/2005, 13h01
  3. Réponses: 3
    Dernier message: 15/10/2004, 19h41
  4. [Debutant(e)]importer une classe
    Par ber_jp dans le forum Eclipse Java
    Réponses: 18
    Dernier message: 12/05/2004, 17h39
  5. [ JSP ] [ Tomcat ] importer une classe perso
    Par captainpouet dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/03/2004, 11h30

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