2010-03-30 20 views

Respuesta

9

Java solo puede decirle si puede cargar una clase. No puede decirle si un paquete existe o no porque los paquetes no están cargados, solo las clases.

La única forma sería intentar cargar una clase desde ese paquete. ., Por ejemplo, para javax.servlet * usted podría hacer:

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

Comprobar si el envase está presente como un recurso:

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

Alternativamente, comprobar si alguna clase de este paquete se puede cargar a través de Class.forName(...).

4

Si nos fijamos en los documentos de la API para la instalación que tiene, le dirá todos los paquetes instalados, por ejemplo: http://java.sun.com/j2se/1.5.0/docs/api/

En el código, puede hacer algo como esto:

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

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

Esto funciona solo si una clase se cargó antes de ese paquete. – lexicore

+0

Esto solo funcionará si el ClassLoader ha cargado una clase de ese paquete. –

+0

¡JINX! ¡Cómprame una coca cola! ;) –

Cuestiones relacionadas