2010-03-03 6 views
0

Dans mon projet Java j'ai besoin de lister tous les noms de classe dans le paquet courant, je cours habituellement mon application dans deux modes différents: < 1> De NetBeans, < 2> D'un fichier jar exécutable empaqueté par le NetBeans.Comment lister tous les noms de classe dans le package actuel avec Java?

Ma question est: Comment écrire mon programme de sorte que quel que soit le mode, il peut lister tous les noms de classe dans mon application. Parce que quand je l'exécute en mode NetBeans je peux regarder dans le répertoire src/pour lister les noms de classes, mais quand il est exécuté dans le mode fichier jar exécutable empaqueté sur une autre machine, le répertoire src/dir n'est pas là. programme J'essaie de lister les entrées de jar et de trouver les noms de classes de cette façon, ça ne marchera pas dans NetBeans, parce que ce n'est pas encore jared.

Je sais que je peux essayer de détecter le mode sous lequel il s'exécute et de le gérer différemment, mais y a-t-il une meilleure façon de le faire sans savoir dans quel mode il s'exécute?


Je me demande si l'approche suivante résoudrait mon problème:

http://snippets.dzone.com/posts/show/4831

J'ai essayé: getClasses ("") pour obtenir les classes de package actuel, il ne fonctionne pas, pourquoi?

Frank

+1

Dupliquer de http://stackoverflow.com/questions/520328/can-you-find-all-classes-in-a-package-using-reflection. –

+0

Voir aussi http://stackoverflow.com/questions/2366733/how-to-list-source-code-file-names-at-java-run-time – trashgod

Répondre

0

à condition que vous n'utilisez pas les chargeurs de classes dynamiques que vous pouvez rechercher le classpath et rechercher chaque entrée du fichier répertoire ou JAR.

0

Vous ne pouvez pas dire quelles classes sont dans un package. C'est parce que tout le monde peut ajouter d'autres classes à vos paquets (par exemple à partir d'autres fichiers jar). Cependant, il existe des fonctions dans l'API Java pour examiner les fichiers JAR. Ce ne serait pas entièrement indépendant de la façon de courir si.

Questions connexes