2012-01-29 29 views
38

Desde la línea de comandos, ¿cómo configuro la opción Java CLASSPATH para que apunte a uno o más directorios que contienen varios archivos jar? ¿Hay comodines para el directorio recursivo y el soporte de subdirectorios?Establecer carpeta para classpath

(. Mis archivos JAR se clasifican en varios subdirectorios)

+1

La ruta al directorio de nivel superior debería ser suficiente. – kosa

+6

Duplo de http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath – Vadzim

Respuesta

54

Si está utilizando Java 6 o superior puede utilizar comodines de esta forma:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp 

Si desea añadir todos los subdirectorios: lib \ a \, lib \ b \, lib \ c \, no existe un mecanismo para esto en excepto:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp 

no hay nada como lib\*\* o lib\** w ildcard para el tipo de trabajo que desea hacer.

+14

No es mi opinión. Es el hecho desde aquí http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html Cita: 'Los subdirectorios no se buscan recursivamente. Por ejemplo, foo/* busca archivos JAR solo en foo, no en foo/bar, foo/baz, etc.' – msi

+9

Y en caso de que se pregunte por qué la ruta tiene ".;" al principio, es para asegurarse de que las rutas de clase existentes establecidas en el sistema a través de variables de env, etc., no se escriben en exceso. –

+6

@msi Lo siento, mi propósito fue agradecerle por su respuesta. – MJM

6

utilizar el comando como

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name> 

El comando anterior establecer las rutas mencionadas a classpath sólo una vez para la ejecución de la clase llamada TestClass.

Si desea ejecutar más de una clase, a continuación, puede seguir este

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*" 

Después de esto se puede ejecutar tantas clases como desee simplemente escribiendo simplemente

java <your-class-name> 

Lo anterior comando funcionará hasta que cierre el símbolo del sistema. Pero después de cerrar el símbolo del sistema, si vuelve a abrir el símbolo del sistema e intenta ejecutar algunas clases, tiene que volver a establecer el classpath con la ayuda de cualquiera de los dos métodos mencionados anteriormente. (Primer método para ejecutar una clase y segundo uno para la ejecución de más clases)

Si desea establecer la classpth una sola vez para que pudiera trabajar por cada vez, y luego hacerlo de la siguiente manera

1. Right click on "My Computer" icon 
2. Go to the "properties" 
3. Go to the "Advanced System Settings" or "Advance Settings" 
4. Go to the "Environment Variable" 
5. Create a new variable at the user variable by giving the information as below 
    a. Variable Name-  classpath 
    b. Variable Value- .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\* 
6.Apply this and you are done. 

Recuerde que esto funcionará cada vez. No necesita establecer explícitamente el classpath una y otra vez.

NOTA: Si desea agregar algunas otras librerías después de un día, no olvide agregar un punto y coma al final del "valor variable" de la "Variable de entorno" y luego escriba la ruta de tus nuevas libs después del punto y coma. Porque el punto y coma separa las rutas de diferentes directorios.

Espero que esto te ayude.

Cuestiones relacionadas