java项目中的所有包

java项目中的所有包,java,class,project,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 (in

我希望打印出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() + "\", ");
}
Package[]pa=Package.getPackages();
对于(int i=0;i
我该怎么做呢


谢谢大家

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

但是,您可以查看反射库:

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

使用该库,您可以尝试以下操作:

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

 Set<Class<? extends Object>> allClasses = 
 reflects.getSubTypesOf(Object.class);
Reflections reflects=新的反射(“my.project.prefix”);

设置使用
反射,或者解析类路径,将其拆分为单独的文件夹和/或jar文件,遍历每个文件夹和/或jar文件并列出包。但这比使用反射库要复杂得多。

什么时候需要它?在运行时或打包之前(比如在编译时)?重复@肯特:我自己也会使用反思库,但我只是想说明还有其他选择。Spring的类路径扫描技术也出现在脑海中。