Foros del Web » Programación para mayores de 30 ;) » Java »

como ejecutar ficheros java sin tener que acceder a la carpeta donde esta el .class?

Estas en el tema de como ejecutar ficheros java sin tener que acceder a la carpeta donde esta el .class? en el foro de Java en Foros del Web. Hola a todos. Mi duda es la siguiente: Tengo un directorio con clases de java ya compiladas y quiero por ejemplo ejecutar un fichero java ...
  #1 (permalink)  
Antiguo 07/09/2004, 03:44
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 9 meses
Puntos: 7
Sonrisa como ejecutar ficheros java sin tener que acceder a la carpeta donde esta el .class?

Hola a todos. Mi duda es la siguiente:

Tengo un directorio con clases de java ya compiladas y quiero por ejemplo ejecutar un fichero java (es decir, una clase java ya compilada). Para ello hago por ejemplo:

java clases\clase1 (esto lo hago por ejemplo desde la consola de windows y encontrandome fuera del directorio 'clases' que es donde se encuentra el fichero que quiero ejecutar).

y siempre obtengo el error:
Exception in thread "main" java.lang.NoClassDefFoundError:clases\clase1

Es decir, no encuentra la clase (.class).

En cambio si ejecuto dicha clase desde el directorio donde se encuentra el .class , es decir, accedo a la carpeta 'clases' y desde alli hago:

java clase1

entonces funciona perfectamente. Entonces mi pregunta es:

¿como hago para poder ejecutar programas en java sin tener que meterme directamente en la carpeta donde se encuentra el .class?

Un saludo
  #2 (permalink)  
Antiguo 07/09/2004, 09:52
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses
Puntos: 10
ya probaste poniendo el PATHcompleto??

java c:\clases\MiClase

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 07/09/2004, 11:02
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 9 meses
Puntos: 7
Gracias goncafa(o gonzalo castillo) por responder. Si he probado a poner la ruta completa como me comentas pero siempre me sale el error de java.lang.NoClassDefFoundError.

También he probado a añadir en la variable de entorno CLASSPATH la ruta donde se encuentran las clases compiladas que quiero ejecutar pero tampoco funciona.

Espero que alguien sepa como se hace.

Un saludo y de nuevo gracias por contestar.
  #4 (permalink)  
Antiguo 07/09/2004, 11:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 21 años, 1 mes
Puntos: 7
lo que pasa, es que primero debes acceder al directorio:
>cd clases
>java clase1.class

y listo
  #5 (permalink)  
Antiguo 07/09/2004, 14:29
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 22 años
Puntos: 0
A mi me funciona lo siguiente:

java -classpath c:\clases Clase1

Si tuvieses un sistema de paquetes seria:

java -classpath c:\clases com.empresa.proyecto.Clase1

Suerte.
Saludos,
kripton
__________________
Hoy por ti, mañana por mi. Compartiendo entre amigos.

Usuario Registrado Linux #327495
  #6 (permalink)  
Antiguo 07/09/2004, 17:01
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 23 años
Puntos: 1
Hola, la excepción java.lang.NoClassDefFoundError es porque la clase que queremos ejecutar no la encuentra JAVA.

En tu caso (aeb_asturias) , es porque el directorio donde esta tu .class no esta mapeado en la variable de entorno CLASSPATH. Para solucionar esto, podrías configurar tu variable de entorno CLASSPATH agregándole el directorio en donde quieres que JAVA encuentra a las clases que deseas ejecutar; o como lo explica kripton, ubicar en el comando java, la variable -classpath seguido por la ruta del directorio donde se encuentra tu clase. Cualquiera de las dos alternativas es válida. Efectivamente se recomienda, la segunda forma, y sólo en casos muy necesarios la primera.

Ahora, algo importante y que también meciona kripton, es el caso cuando tu clase JAVA está ubicada dentro de paquetes. Me parece que no es tu caso. Pero si estuvieras trabajando con paquetes el nombre de la clase que deseas ejecutar es con todos los nombres de paquetes en los cuales se ubica tu clase.
__________________
Saludos,

H@C..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:41.