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 :

Liste de toutes les classes de l'API Java


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Liste de toutes les classes de l'API Java
    Bonjour,

    Je souhaite faire un système d'auto-complétion sur les noms des classes de l'API Java.
    Pour cela il me faudrait la liste de toutes les classes de l'API java.

    Voici le code que j'ai essayé d'écrire pour arriver à mes fins :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class RechercheClasse {
     
    	public static void main(String args[]){
    		Package[] pList;
    		pList = Package.getPackages();
    		System.out.print(pList.length);
     
    		//Package pack;
    		for(Package pack:pList){
     
     
    			System.out.print(pack.getName());
    			for(Annotation a:(pack.getAnnotations())){
     
    				System.out.print("oui");
    			annoGetter(a);
    			}
    		}
     
    	}
     
    	private static void annoGetter(Annotation a){
    		System.out.print("oui");
    		if(a.getClass()==Package.class){
    			annoGetter(a);
    		}
    		else{
    			Class theClass = a.getClass();
    			System.out.print(" - "+theClass.getName());
    		}
    	}
    }
    Cela ne fonctionne pas, le getAnnotations() me retourne systématiquement un tableau vide.


    Auriez-vous une idée d'algo me permettant de charger une liste de toutes les classes du rt.jar ?

    Merci d'avance !

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Albataur Voir le message
    Cela ne fonctionne pas, le getAnnotations() me retourne systématiquement un tableau vide.
    Cela me semble normal : à ma connaissance aucun package de l'API standard ne comporte d'annotation.


    Citation Envoyé par Albataur Voir le message
    Auriez-vous une idée d'algo me permettant de charger une liste de toutes les classes du rt.jar ?
    Il faut ouvrir le jar et lire les fichier un à un...

    a++

  3. #3
    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
    Les annotations n'ont pas de rapport avec le nom de la classe. La réflection fonctionne dans le sens inverse : on donne le nom d'une classe et on obtient sa définition.
    Il serait préférable que tu parses les sources au lieu de rt.jar. Tu créés ainsi une fois pour toute un fichier de configuration. Le chargement sera plus rapide.
    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.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Une idées me passant comme ça par la tête...

    Peut-être en utilisant les méthodes 'Class.getMethods' 'Class.getPackage' (voir aussi le classe 'Package' ?

    Mais de toute manière il semble obligatoire de parcourir le rt.jar ou de parser le source pour connaitre le contenu des packages... et surtout quel package existe...

    Bonne chance !

  5. #5
    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
    une idée à la con :
    ce serait pas plus performant d'extraire les classes depuis la javadoc ? Parser les fichiers html de la catégorie "index" ?

  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
    C'est vrai qu'elles se trouvent toutes ici : http://java.sun.com/javase/6/docs/ap...ses-frame.html et le code source de la page permet de connaître le package où les trouver.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Merci pour vos réponses.
    En fait j'avais commencé un programme qui parcourait le rt.jar mais j'obtenais une erreur bizarre (Exception in thread "main" java.lang.UnsatisfiedLinkError: initialize
    at com.sun.management.OperatingSystem.initialize(Native Method)).

    Entre temps j'ai trouvé un fichier xml avec les métriques, associations, hiérarchie et classes de la jdk. Un petit XSLT va me permettre de générer la liste de tous les noms des classes.

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

Discussions similaires

  1. [Études] Liste de toutes les formations info
    Par Le Marlou dans le forum Etudes
    Réponses: 74
    Dernier message: 04/03/2021, 13h09
  2. récupéré la liste de tout les attributs d'une classe
    Par php_faboul dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2010, 18h29
  3. [SQL Server]La liste de toutes les tables
    Par Husqvarna dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/09/2008, 17h21
  4. Réponses: 2
    Dernier message: 09/07/2008, 15h49
  5. Réponses: 7
    Dernier message: 24/05/2003, 16h56

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