我想测试当前类加载器或系统是否知道特定包。 Package.getPackage(String name)似乎返回null,因此我卡住了。 ClassLoader不包含任何方法,因此我卡住...Java:测试是否存在包(使用其名称)...
我宁可不加载包中的类来测试它是否存在,当然是更好的方法。
任何指针,将不胜感激。
我想测试当前类加载器或系统是否知道特定包。 Package.getPackage(String name)似乎返回null,因此我卡住了。 ClassLoader不包含任何方法,因此我卡住...Java:测试是否存在包(使用其名称)...
我宁可不加载包中的类来测试它是否存在,当然是更好的方法。
任何指针,将不胜感激。
Package.getPackage(String name)
是该工作的正确工具。请确保您已经
Package.getPackages()
来看看有什么可用getClass().getPackage()
,然后Package.getPackage(String name)
的方法仅在当前类加载器中搜索包(或者,如果当前类加载器为空,则为系统类加载器)。如果在当前类加载器中没有加载包中的类,那么该包将不存在。
这似乎是忽略了一个线程上下文类加载器:( –
没有简单的方法可以获取有关包是否存在的信息,除非已从该包中加载类。 Package.getPackage
只有在命名包中的类已加载时才起作用。
的选项有:
如果代码还使用了URL类加载器,则第二个选项可能会失败。
你好PL,thanx支持(: –