Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取java应用程序的所有包?_Java_Spring_Spring Boot - Fatal编程技术网

如何获取java应用程序的所有包?

如何获取java应用程序的所有包?,java,spring,spring-boot,Java,Spring,Spring Boot,是否有一种方法可以在运行时获取与我的应用程序相关的所有包?(例如字符串列表) 我只对在我的应用程序中声明的包感兴趣,而对那些来自依赖项的包不感兴趣 我尝试按主类搜索它们: System.getProperty("sun.java.command") 但是,在这种情况下,我只能得到我的主类的一个包 我想它的用途和包装方式可能会有所不同。但是,现在我主要使用打包为jar的Spring Boot应用程序。您应该以这种方式尝试,指定主类包并进行筛选 spring boot主类包com.main Pac

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

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

我尝试按主类搜索它们:

System.getProperty("sun.java.command")
但是,在这种情况下,我只能得到我的主类的一个包


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

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

spring boot主类包
com.main

Package[] p = Package.getPackages();

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

这可能是XY问题吗?@NathanHughes,这可能有用。但是,我希望有一个比遍历zip更优雅的解决方案。@jaco0646,问题在第一行。我只是记下了我到目前为止所做的事情。我的意思是,在不知道为什么需要一个包名列表的情况下,它闻起来像是一个设计缺陷。理想情况下,有一个更好的设计,您不需要它。是的,我需要它的原因是我想在java代理中插入所有的类,只有我的包。这就是我需要这些软件包列表的原因。有些应用程序同时有两个或更多完全不同的软件包。e、 g.com.dvelopp.app(有主类)和com.company.utils(我的项目中有一些utils)在这种情况下,只遍历com.dvelopp.app分支,对吗?然后检查
startsWith(“com.dvelopp”)
startsWith(“com.company”)
,但基本上在SpringBoot中,所有的包都应该属于主类包,对吗?我的意思是,这似乎很清楚@dvelopp适用于弹簧组件。非spring托管类可以在不同的包中(这可能不是很酷,但仍然如此)。但是,在这种情况下,我们仍然不知道“com.company”的存在。不管怎么说,答案很好,但我们仍然有一些这种方法没有涵盖的情况。我很想知道,如果你没有我的@dveloppI基本上意味着它找不到主类之外的包。