2010-03-30 177 views
8

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

+2

易方式:导入包,使用它,编译。 – Tom 2010-03-30 19:02:25

回答

9

Java只能告诉你它是否可以加载一个类。它不能告诉你包是否存在,因为包没有被加载,只有类。

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

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

检查包存在作为一种资源:

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

另外,检查是否存在类此包可以通过Class.forName(...)被加载。

4

如果你在为你的安装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"); 
} 
+2

仅当从此包中加载类之前,此工作才有效。 – lexicore 2010-03-30 19:11:38

+0

这只有在ClassLoader加载了该包中的类时才有效。 – 2010-03-30 19:11:42

+0

JINX!给我买可乐! ;) – 2010-03-30 19:12:19