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
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
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 ^^
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
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.
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 ?
Tu peux t'aider de la classe java.io.StreamTokenizer.
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.
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
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager