2010-01-07 16 views
7

lo hice antes:¿Cómo debo configurar CLASSPATH?

CLASSPATH = ":./Home/phoenies/jdk1.6.0_17/lib/tools.jar: /home/phoenies/jdk1.6.0_17/lib/dt.jar"

Pero hoy en día un artículo dice que debería hacer esto:

CLASSPATH = ":./home/phoenies/jdk1.6.0_17/lib"

Si lo hago, se verá arch todos los archivos jar en lib? Entonces, ¿es probablemente una forma más corta?

Respuesta

12

dado que está utilizando JDK6, puede utilizar comodines ruta de clases: CLASSPATH = ":./Home/phoenies/jdk1.6.0_17/lib/*" coincidirá con todos los TARROS dentro lib/

Salida http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html hay una sección llamada "Comprender los comodines de la ruta de clase"

+3

+100. No tenía idea de que había comodines classpath. –

+0

Gracias por su respuesta oportuna :) – phoenies

+0

muy interesante. +1. Sin embargo, argumentaría en contra del uso de 'debería', ya que no hay un pedido explícito de los archivos cargados, por lo que podría haber un comportamiento inesperado si tiene varios archivos jar que contienen diferentes versiones de la misma clase en su directorio. – akf

1

Sí, buscará todos los archivos jar en lib si lo hace de la segunda manera. Es bastante extraño ver que la ruta de clase se establezca tan específicamente como en la primera. Supongo que en un servidor donde querías estar seguro de qué frascos se estaban cargando, esa podría ser una forma de restringirlos, pero podrías tener problemas con cuánto tiempo puede pasar si tienes varios frascos.

+0

O ¿Realmente? La definición de un directorio en classpath siempre solía ser encontrar archivos .class desnudos. – bmargulies

+3

Incorrecto. Tienes que listar JARs individualmente. – duffymo

0

Los archivos jar se deben especificar por nombre en la variable Classpath. Una cosa a tener en cuenta es que la línea de comandos -classpath param es más versátil que la variable de entorno, ya que le permite establecer un classpath por aplicación.

0

En Java 1.6+ puede establecer classpath en un directorio seguido de/* para cargar todos los archivos JAR en ese directorio. No solo el nombre del directorio, sino que es para cargar archivos de clase en ese directorio y subdirectorios.

1

Creo que tener una variable de entorno CLASSPATH es incorrecto para todos, pero el más fácil de los tutoriales "Hello, World".

La forma correcta es establecer CLASSPATH para cada proyecto al compilar y ejecutar. Es probable que cada proyecto sea diferente, por lo que tiene mucho sentido.

IDEs ignoran la configuración del entorno CLASSPATH; también lo hacen todos los servidores de aplicaciones Java EE. Es una reliquia de Java 1.0. No tengo CLASSPATH configurado en ninguna máquina en la que trabaje.

Aprenda a crear una secuencia de comandos para la línea de comandos. O usa Ant. Estaras contento de haberlo hecho.

+0

Oh, pensé que era solo una convención. – phoenies

Cuestiones relacionadas