проверка наличия пакета - PullRequest
9 голосов
/ 30 марта 2010

Как я могу проверить, существует ли такой пакет как javax.servlet. * В моей установке java?

Ответы [ 3 ]

12 голосов
/ 30 марта 2010

Java может только сказать вам, может ли она загрузить класс. Он не может сказать вам, существует ли пакет или нет, потому что пакеты не загружены, только классы.

Единственный способ - попытаться загрузить класс из этого пакета. например, для javax.servlet. * вы можете сделать:

try {
    Class.forName("javax.servlet.Filter");
    return true;
} catch(Exception e) {
    return false;
}
9 голосов
/ 30 марта 2010

Проверьте, присутствует ли пакет как ресурс:

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

В качестве альтернативы, проверьте, может ли какой-либо класс этого пакета быть загружен через Class.forName(...).

3 голосов
/ 30 марта 2010

Если вы посмотрите в документации 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...