检查包是否存在

时间:2010-03-30 18:59:49

标签: java reflection

如何在我的java安装中检查javax.servlet。*之类的包是否存在?

3 个答案:

答案 0 :(得分:12)

Java只能告诉你它是否可以加载一个类。它无法告诉您是否存在包,因为未加载包,只有类。

唯一的方法是尝试从该包中加载一个类。例如,对于javax.servlet。*你可以这样做:

try {
    Class.forName("javax.servlet.Filter");
    return true;
} catch(Exception e) {
    return false;
}

答案 1 :(得分:9)

检查包是否作为资源出现:

// Null means the package is absent
getClass().getClassLoader().getResource("javax/servlet");

或者,检查是否可以通过Class.forName(...)加载此包的某些类。

答案 2 :(得分:3)

如果你查看API文档中的安装,它会告诉你所有已安装的软件包,例如:http://java.sun.com/j2se/1.5.0/docs/api/

在代码中,您可以执行以下操作:

Package foo = Package.getPackage("javax.servlet");

if(null != foo){
  foo.toString();
}else{
  System.out.println("Doesn't Exist");
}