Java:测试一个包(使用它的名字)是否存在



我想测试当前的类加载器或系统是否知道一个特定的包。包中。getPackage(字符串名称)似乎返回null,因此我卡住了。ClassLoader不包含任何做同样事情的方法,因此我卡住了…

我不想在包中加载一个类来测试它是否存在,肯定有更好的方法。

Package.getPackage(String name)是适合这项工作的工具。确保你有

  1. 正确输入包名
  2. 试试Package.getPackages()看看有什么可用
  3. 确保类加载器匹配-测试实例getClass().getPackage(),然后Package.getPackage(String name)

该方法只在当前类加载器中搜索包(如果当前类加载器为null,则在系统类加载器中搜索包)。如果包中没有类在当前类加载器中加载,则包将不存在。

要获取包是否存在的信息并不容易,除非从该包中加载了一个类。Package.getPackage仅在已加载命名包中的类时才起作用。

你的选择是:

  1. 从包中加载一个类,或者实例化一个类。
  2. 查找类路径,并检查类路径中所有的jar/dir。

如果代码也使用url类加载器,第二个选项可能会失败。

相关内容

  • 没有找到相关文章

最新更新