java项目中的所有包

时间:2013-01-01 19:26:49

标签: java class project

我希望打印出Java项目中所有包中的所有类。例如,假设项目包含

Package1.Class1
Package1.Class2
Package1.Class3
Package2.Class1
Package2.Class2

我想要打印出所有这些包和类。使用以下代码,我可以列出它们,但仅当我以Package.Class c = new Package.Class();

的方式引用时

以下是我尝试使用的代码:

Package[] pa = Package.getPackages();
for (int i = 0; i < pa.length; i++) {
    Package p = pa[i];
    System.out.print("\"" + p.getName() + "\", ");
}

关于我如何做到这一点的任何想法?

全部谢谢

2 个答案:

答案 0 :(得分:3)

由于类加载器的动态特性,没有简单的方法。

但是你可以查看反射库:http://code.google.com/p/reflections/

这将允许您在当前类路径中查找类。

使用该库,您可以尝试这样的事情:

 Reflections reflects = new Reflections("my.project.prefix");

 Set<Class<? extends Object>> allClasses = 
 reflects.getSubTypesOf(Object.class);

答案 1 :(得分:2)

使用reflections,或解析类路径,将其拆分为单个文件夹和/或jar文件,遍历每个文件并列出软件包。但这比使用反射库更复杂。