¿Cómo usar un comodín en el classpath para agregar varios tarros?

He estado usando tantas bibliotecas de terceros (archivos jar) que mi CLASSPATH está completamente desordenada ya que tengo que incluir la ruta para cada archivo jar que uso.

Me he estado preguntando si hay una manera de incluir todos los archivos jar en una carpeta usando el operador comodín (*) (como * .jar). Pero parece no estar funcionando. ¿Hay alguna otra manera que pueda acortar el CLASSPATH que actualmente parece un ensayo;) en mi PC ?.

De: http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html

Las entradas de ruta de clase pueden contener el carácter comodín de nombre base * , que se considera equivalente a especificar una lista de todos los archivos en el directorio con la extensión .jar o .JAR. Por ejemplo, la entrada de la ruta de clase foo/* especifica todos los archivos JAR en el directorio llamado foo. Una entrada classpath que consiste simplemente en * expande a una lista de todos los archivos jar en el directorio actual.

Esto debería funcionar en Java6, no estoy seguro acerca de Java5

(Si parece que no funciona como se esperaba, intente poner comillas, por ejemplo: "foo/*" )

Esto funciona en Windows:

 java -cp "lib/*" %MAINCLASS% 

donde %MAINCLASS% por supuesto es la clase que contiene su método principal.

Alternativamente:

 java -cp "lib/*" -jar %MAINJAR% 

donde %MAINJAR% es el archivo jar para iniciar a través de su manifiesto interno.

Los comodines Basename se introdujeron en Java 6; es decir, “foo / *” significa todos los archivos “.jar” en el directorio “foo”.

En versiones anteriores de Java que no admiten classpaths wildcard, he recurrido al uso de un script envoltorio de shell para ensamblar un Classpath al ‘englobar’ un patrón y modificar los resultados para insertar ‘:’ caracteres en los puntos apropiados. Esto sería difícil de hacer en un archivo BAT …

Si quiere decir que tiene una variable de entorno llamada CLASSPATH, diría que ese es su error. No tengo tal cosa en ninguna máquina con la que desarrolle Java. CLASSPATH está tan ligado a un proyecto en particular que es imposible tener un CLASSPATH único y correcto que funcione para todos.

Configuro CLASSPATH para cada proyecto utilizando un IDE o Ant. Hago mucho desarrollo web, por lo que cada WAR y EAR usa su propia CLASSPATH.

Es ignorado por IDEs y servidores de aplicaciones. ¿Por qué lo tienes? Yo recomendaría eliminarlo.