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

API standards et tierces Java Discussion :

Cherche API pour travailler sur le code source java


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut Cherche API pour travailler sur le code source java
    Bonjour !

    Mon projet nécessite que je lise du code source , que je l'analyse, et que je puisse le modifier, puis créer la class associée et la loader à chaud dans le programme.

    Ou puis je piocher des API pour cela

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Points : 267
    Points
    267
    Par défaut
    Salut,

    Ce serais pas une sorte de 'debugger' d'éclipse?
    Tu peux modifier le code source en live et tout est dynamique.
    Tu peux regarder de ce coté la...

    a++

  3. #3
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Citation Envoyé par Alec6 Voir le message
    Bonjour !

    Mon projet nécessite que je lise du code source , que je l'analyse, et que je puisse le modifier, puis créer la class associée et la loader à chaud dans le programme.

    Ou puis je piocher des API pour cela

    Merci.
    "que je lise le code source" --> n'importe quel éditeur de texte est capable de le faire (bloc-note sous windows, vi sous unix)

    "que je l'analyse et que je puisse le modifier" les applications citées au dessus le font également.

    "puis créer la classe associée" --> javac (le compilateur) est là pour ça.

    "loader à chaud dans le programme" --> ????? loader une classe, c'est faisable via le classloader mais tu parles de quel programme ? un programme que t'as écrit en qbasic 1.0 ? des précisions sont nécessaires...

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Je fais un logiciel capable d'auto analyser son code et s'auto compléter. Par exemple si le logiciel trouve que pour son fonctionnement il lui manque une méthode ou des conditions dans la méthodes etc... il va reprendre le code source de la classe correspondante, le compléter, le compiler pour enfin le charger à chaud.

    Tout est automatiser le facteur humain n'intervient pas dans ce processus.

    Je pense que je dois commencer par faire un AST du code JAVA. Puis compléter l'AST, et enfin demander à l'AST de s'écrire sur un fichier texte .java. Après bien sur il y a la phase de compilation, et je pense pouvoir trouver Des classloaders capable de charger à chaud (genre techno de plugin).

    Je suis pas du tout un pro de ANTLR; peut etre y a t-il une API d'analyse de code toute faite quelque part.

  5. #5
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour Alec6,

    J'ai passe moi aussi pas mal de temps sur ANTLR, et c'est quand meme super complique. Je voulais donner la fonctionnalité de pouvoir ajouter des champs/methodes dans un fichier JAVA dans Akrogen , plugin Eclipse de génération de code.

    Eclipse propose une API JDT qui te permet de gerer des fichiers JAVA (ajout/suppression des methodes....), qui est super bien faite. Tu verras ce projet est decoupé en plusieurs lib (moi j'utilise le core), mais tu peux gerer le debug, les annotations Java5 (APT)...
    Apres je ne sais pas si c facile d'utiliser cette API en dehors d'Eclipse.

    Bon courage

    Angelo

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Une autre alternative serait de ne pas passer par la génération d'un code source Java et de bosser directement avec le bytecode, ce qu'on appelle l'instrumentation.

    Pour ce faire, je te conseille vivement la librairie asm d'ObjectWeb.

    Bonne chance.

  7. #7
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je suis le seul à ne pas avoir compris la problématique ?
    En tout cas, désolé de t'avoir pris pour un débutant, cela dit, ce sujet me semble très intéressant.

  8. #8
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour,
    je ne connaissais pas asm (merci djo). Mais dans le même type d'API, il y a cglib qui permet de modifier le bytecode à la volée.

    Je n'ai jamais utilisé cette librarie mais je sais qu'elle utilisé dans beaucoups de gros projets comme Hibernate (pour gérer le mode lazy) ou encore Spring (pour gérer l'AOP).

    Angelo

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Donc j'ai regardé ASM, c'est super professionnelle, mais j'ai pas vu qu'on pouvait travailler le code in the small, c'est à dire rentrer dans le code d'une méthode et voir l'enchainement des instructions. Par contre on peut ajouter du code avant et après à ce que j'ai compris. En tout cas je suis content de l'avoir découvert pour ma culture.

    Je crois que j'ai besoin d'un parser de code JAVA qui me produise un Jolie AST, mais je suis pas doué avec ANTLR qui effectivement n'est pas simple, ni didactique (gout perso).

    Pour JDT je suis décu, c'est super, sauf que je peux pas embarcer la lib core, elle est couplé à d'autres lib. Ca fait un gros package.

    A bien quelq'un quelque part qui à fait une API pour travailler sur le code JAVA...
    Pour la compilation et le chargement à chaud je peux toujours me débrouillé.

  10. #10
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Si tu tiens à travailler directement sur la source, tu peux toujours utiliser ANTLR, même si tu ne maitrises pas sa syntaxe. D'ailleurs, se serait un projet titanesque d'essayer d'ecrire la grammaire de Java.
    Pour ce faire, rien de plus simple : tu cherches une grammaire toute prête ne demandant qu'à être utilisée, la faire passer par ANTLR qui va te générer l'AST.
    Une rapide recherche sur google donne par exemple :
    http://www.antlr.org/grammar/1090713067533/index.html

    Bonne Chance.

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Merci djo.mos, effectivement je me suis rabattu sur ANTLR.

Discussions similaires

  1. Recherche lib / source pour travail sur PDF
    Par Sunchaser dans le forum C++Builder
    Réponses: 20
    Dernier message: 05/03/2008, 19h48
  2. Demande d'aide pour un problème de code source sur devC++
    Par Rickantonais dans le forum Débuter
    Réponses: 28
    Dernier message: 01/08/2007, 15h09
  3. Réponses: 5
    Dernier message: 13/04/2007, 14h54

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