如何获取Java应用程序的所有软件包?

时间:2019-01-22 18:59:23

标签: java spring spring-boot

是否可以在运行时获取与我的应用程序相关的所有软件包? (例如字符串列表)

我只对在应用程序中声明的包感兴趣,而对来自依赖项的包不感兴趣。

我试图按主类搜索它们:

System.getProperty("sun.java.command")

但是,在这种情况下,我只能得到主类的软件包。

我认为它的应用程序和打包方式可能有所不同。但是,现在我主要使用Spring Boot应用程序,这些应用程序打包为 jar

1 个答案:

答案 0 :(得分:2)

您应该以这种方式尝试,指定主类包并进行过滤

spring boot主类包 com.main

Package[] p = Package.getPackages();

    for(Package p1 : p) {
        if(p1.getName().startsWith("com.main"))
            System.out.println(p1.getName());
    }