12
votes

vérifier si un paquet existe ou non

Comment puis-je vérifier si un paquet comme Javax.Servlet. * Existe ou non dans mon installation de Java?


1 commentaires

Easy Way: Importez le colis, utilisez-le, compiler.


3 Réponses :


12
votes

Java ne peut vous dire que si cela peut charger une classe. Il ne peut pas vous dire si un colis existe ou non parce que les colis ne sont pas chargés, seulement des cours.

Le seul moyen serait de charger une classe de ce paquet. E.G., pour Javax.Servlet. * Vous pouvez faire: P>

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


0 commentaires

12
votes

Vérifiez si le package est présent en tant que ressource: xxx

Vous pouvez également charger si une classe de ce paquet peut être chargée via class.forname (...) .


1 commentaires

Notez que cela ne fonctionne pas pour JDK 9+, où les packages sont encapsulés dans des modules. Cependant, les classes ne sont pas encapsulées, les œuvres suivantes: GetClass (). GetClassloader (). GetResource ("Java / Lang / string.cl ass")



4
votes

Si vous regardez dans l'API Docs pour l'installation que vous avez, cela vous indiquera tous les packages installés, par exemple: http://java.sun.com/j2se/1.5.0/docs/apli/

en code, vous pouvez faire quelque chose comme ceci: P >

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

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


3 commentaires

Cela ne fonctionne que si une classe a été chargée à partir de ce paquet avant.


Cela ne fonctionnera que si une classe de ce paquet a été chargée par le chargeur de classe.


Wow, ne le savait pas. Merci les gars!