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 :

Créer et compiler des classes dynamiquement


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 6
    Par défaut Créer et compiler des classes dynamiquement
    Bonjour,

    Est ce que c'est possible de créer et compiler des classes dynamiquement

    Je veux en fait écrire un boup de code qui permet au cours de l'execution de créer une nouvelle classe et l'utiliser

    Mon besoin c'est qu'apartir d'un fichier mapping Hibernate ajouté à mon application je veux créer le business object correspondant et exécuter des requette sur la table correspondante.

    Si c'est possible, je serai reconnaissant d'avoir une piste là dessus.

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,

    Peut être pouvez-vous essayer en utilisant des objets de la classe Class ...

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Salut,

    Tu peux utiliser tools.jar du JDK qui a une classe sun.tools.javac.Main qui marche comme la commande javac. Tu peux aussi utiliser javax.tools.ToolProvider.defaultJavaCompiler(). Sinon, tu peux aussi utiliser des manipulateurs de bytecode comme ASM ou BCEL pour generer ton plugin en memoire.

    Pour finir, un petit lien qui t'interessera surement :
    http://vincentlaine.developpez.com/t.../java/plugins/

    a+

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Je veux en fait écrire un boup de code qui permet au cours de l'execution de créer une nouvelle classe et l'utiliser.

    Mon besoin c'est qu'apartir d'un fichier mapping Hibernate ajouté à mon application je veux créer le business object correspondant et exécuter des requette sur la table correspondante.
    Je ne comprends pas vraiment ton besoin.
    A quoi te servirait une classe BO créée uniquement au cours de l'exécution du programme, qui se base sur aucune interface ou classe existante mais seulement un fichier Hbm ?

    C'est quasiment inutilisable (à moins de mettre de la réflection partout, même dans le code métier et de vouloir un code non testable) dans un code qui n'a pas connaissance du type crée dynamiquement.
    Concrètement, la compilation d'un code métier référençant une instance de ton BO (BO généré seulement lors de l'exécution) se soldera pas une erreur.

    D'ordinaire un BO généré doit l'être durant la phase de compilation.

Discussions similaires

  1. Réponses: 13
    Dernier message: 15/11/2007, 19h48
  2. Réponses: 5
    Dernier message: 06/09/2006, 13h15
  3. [Tomcat/Struts]non compilations des classes!
    Par jazer dans le forum Struts 1
    Réponses: 9
    Dernier message: 11/07/2006, 14h03
  4. [Débutant] J'ai un problème avec la compilation des classes
    Par Paulinho dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/11/2005, 14h23
  5. [javac] code pour lancer la compilation des classes
    Par viena dans le forum Général Java
    Réponses: 6
    Dernier message: 19/07/2004, 17h41

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