2010-06-09 16 views
10

¡Estoy trabajando en una PC con Windows y tengo cygwin en ella! ¡He organizado todos mis jarros bajo un directorio dentro de unos pocos directorios! Estoy escribiendo un guión bash para establecer el CLASSPATH por iteración a través del directorio que se pasa como un parámetro de la siguiente manera:Espacios en blanco en CLASSPATH

for JAR_FILE in `ls *.jar` 
do 
    CLASSPATH="$DIRECTORY_TO_LOOK_FOR_JARS"/$JAR_FILE:$CLASSPATH 
done 

Siempre que hay espacios en el directorio que se pasa como /cygdrive/c/Documents and Settings/user/My Jars y corro java -cp $CLASSPATH somepackage.someclass, se arroja un error que indica que la clase and no se encuentra, porque la variable CLASSPATH se divide después de /cygdrive/c/Documents.

¿Alguien me puede ayudar a resolver este problema?

Respuesta

10

Ver esto article.

Se podría incluir ya sea la ruta de clase completa en qoutes dobles

java -classpath "C:/Documents and Settings/user/project/lib/axis.jar; C:/Documents and Settings/user/project/lib/axis-ant.jar;" TestClient 

o cada frasco en la ruta de clases

java -classpath "C:/Documents and Settings/user/project/lib/axis.jar"; "C:/Documents and Settings/user/project/lib/axis-ant.jar;" TestClient 

En el caso de que algo así:

for JAR_FILE in `ls *.jar` 
do 
    CLASSPATH="$DIRECTORY_TO_LOOK_FOR_JARS/$JAR_FILE":$CLASSPATH 
done 

Difícil mira, pero moví el qoute doble de cierre.

Cuestiones relacionadas