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 :

Interpréter un source Java, sans le compiler


Sujet :

Java

  1. #1
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut Interpréter un source Java, sans le compiler
    Bonjour,

    Savez-vous s'il existe un moyen de lire un fichier source Java, et d'en tirer des informations (nom de la classe, héritage, les méthodes, les attributs, etc...) ?

    Merci d'avance !

    Toine

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 104
    Points
    104
    Par défaut
    les fichiers sources, humm oui oui avec un simple éditeur de texte

    sinon si c'est pour fouiller une api que tu as trouvé, tu doit pouvoir trouver une javadoc associé ?

    sinon si tu parle plutôt des fichiers compilés (les .class et pas les .java) alors là il y a quelques possibilité mais ce n'est pas forcement permis (et d'autant plus dur si le code est obfusqué si je ne me trompe pas ?).

    dit nous en plus sur le fichier que tu souhaite analyser, peut être qu'on trouvera autre chose ^^

  3. #3
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Merci

    L'idée est d'avoir une sorte d'analyseur pour un code source donné... J'aimerai pouvoir tirer des infos à partir du code source plutot que du code compilé car dans mon cas, la version compilée n'est pas triviale à obtenir.

    Toine

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Points : 199
    Points
    199
    Par défaut
    Je ne voit pas le problème, si tu veux le code compilé il suffit de compiler le source.
    De plus le source est bien plus lisible.

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 104
    Points
    104
    Par défaut
    si je te comprend bien, tu souhaiterai en gros mettre en entrée un fichier source et que tu récupère en sortie par exemple le nombre de méthodes leurs arguments, leurs type de retour, ect ...

    pour cela tu n'a pas énormément de solution :

    soit c'est pour un fichier unique pour une seul utilisation et la ton fichier source tu as juste a l'ouvrir avec un simple éditeur de texte et à ce moment, il n'est pas compliqué de lire le fichier

    soit tu trouve une doc qui doit être fournie avec les fichiers (java ou class)

    soit tu souhaite réaliser un traitement "automatisé" pour le faire avec plusieurs fichier source et la je ne sais pas si des soft existe déjà mais là sa ca ne doit pas être si compliqué que cela à réaliser !

    en gros parcours le fichier ligne par ligne et il ne reste plus qu'a récupérer tes donnée et les retranscrire comme tu le souhaite (de plus la structure d'un source est souvent la même : les imports, puis la class puis les variable globale puis le constructeur puis les méthodes...)

    ps : c'est sur que tes information tu les aura plus facilement avec les sources, avec les class cela risque évidement de te compliquer la tache pour rien ^^

    par contre ses sources elles sont de toi ou les à tu récupéré ailleurs ?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Tu peux t'aider de la classe java.io.StreamTokenizer.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    C'est un peu ce que font les IDE, faudrait creuser et voir comment ils s'y prennent.
    L'avantage d'analyser le .class c'est qu'avec l'API reflection, on a énormement d'info. Compilé en mode débug t'as même les info vis à vis du code source (numéro de lignes...).
    L'inconvénient, c'est qu'il faut résoudre les dépendances éventuels du classpath.

  8. #8
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Ce genre de métriques est déjà calculé par les outils de qualité logicielle (qui analysent les sources) :
    - Checkstyle
    - PMD
    - JavaNCSS
    - etc.

    Ces outils étant Open Source, tu peux t'inspirer de leur manière de procéder (qui n'est sûrement pas triviale... )
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Citation Envoyé par onlytoine Voir le message
    Merci

    L'idée est d'avoir une sorte d'analyseur pour un code source donné... J'aimerai pouvoir tirer des infos à partir du code source plutot que du code compilé car dans mon cas, la version compilée n'est pas triviale à obtenir.

    Toine
    Si t'a le code source je ne vois pas pourquoi tu peux pas avoir le code compilé sauf s'il te manque des .class lié?? Je pense qu'il est plus facile d'obtenir les information par reflection que de parser un fichier source java!

  10. #10
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu pourrais utiliser AntLR avec la grammaire pour le langage Java 1.5 disponible sur le site officiel. En la modifiant pour ne conserver que ce qui t'intéresse, c'est largement faisable.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. Compiler du code source java en java
    Par djmad dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 14/04/2009, 11h53
  2. [Stratégie] Compiler Java sans installer de JSDK
    Par jak0 dans le forum Général Java
    Réponses: 4
    Dernier message: 26/12/2007, 22h18
  3. Réponses: 7
    Dernier message: 26/07/2007, 10h10
  4. compilation d'un fichier source java à partir de DOS
    Par lion000 dans le forum Langage
    Réponses: 8
    Dernier message: 25/07/2007, 14h27
  5. Réponses: 10
    Dernier message: 28/06/2007, 21h42

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