【发布时间】:2010-03-31 03:10:51
【问题描述】:
如何检查 javax.servlet.* 之类的包是否存在于我的 java 安装中?
【问题讨论】:
-
简单方法:导入包,使用,编译。
标签: java reflection
如何检查 javax.servlet.* 之类的包是否存在于我的 java 安装中?
【问题讨论】:
标签: java reflection
Java 只能告诉你它是否可以加载一个类。它不能告诉你一个包是否存在,因为包没有被加载,只有类。
唯一的方法是尝试从该包中加载一个类。例如,对于 javax.servlet.* 你可以这样做:
try {
Class.forName("javax.servlet.Filter");
return true;
} catch(Exception e) {
return false;
}
【讨论】:
检查包是否作为资源存在:
// Null means the package is absent
getClass().getClassLoader().getResource("javax/servlet");
或者,检查这个包的某些类是否可以通过Class.forName(...)加载。
【讨论】:
getClass().getClassLoader().getResource("java/lang/String.class")
如果您在 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");
}
【讨论】: