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

Problema con la consola.

Estas en el tema de Problema con la consola. en el foro de Java en Foros del Web. Hola. Soy nuevo con esto de Java y me surge un problemilla. He intentado hacer pruebas sin IDE, directamente en consola. He grabado el ejemplo ...
  #1 (permalink)  
Antiguo 17/10/2012, 10:10
 
Fecha de Ingreso: septiembre-2012
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Problema con la consola.

Hola. Soy nuevo con esto de Java y me surge un problemilla. He intentado hacer pruebas sin IDE, directamente en consola. He grabado el ejemplo típico en estos casos:

class Hola {
public static void main (String args[]){
System.out.println("Hola desde Java.");
}
}

Lo he grabado como Hola.java, en el directorio bin del JDK, y lo he compilado con:

javac Hola.java

Hasta aquí todo bien. No da ningún error, y me crea el archivo Hola.class
Ahora intento ejecutarlo con

java Hola

Y la respuesta en consola es

Error: no se ha encontrado o cargado la clase principal Hola

A que puede deberse esto? Creo que las variables de entorno estén bien, porque si hago lo mismo desde Eclipse me funciona.

Si me dais una pista, os lo agradezco, ya que tb me gustaría familiarizarme con la consola, sin IDE.

Gracias.
  #2 (permalink)  
Antiguo 17/10/2012, 10:34
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Problema con la consola.

Declara la clase como public class Hola
  #3 (permalink)  
Antiguo 17/10/2012, 12:54
 
Fecha de Ingreso: septiembre-2012
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con la consola.

Cita:
Iniciado por posman Ver Mensaje
Declara la clase como public class Hola
Te agradezco la sugerencia, pero sigue dando el mismo problema. Puede haber algún problema con la máquina virtual? Es que no se me ocurre que pensar.

Gracias.
  #4 (permalink)  
Antiguo 17/10/2012, 14:05
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Problema con la consola.

Pueden pasar muchas cosas.

¿Tiene package la clase?. En principio no porque no has puesto el código. Si lo tiene la forma de ejecutar es distinta.

Si en la vetnana de comandos donde compilas y ejecutas, pones

set CLASSPATH

¿qué sale? Debe o bien no salir nada, o bien salirte algo pero que tenga el . (punto) entre los directorios de ejecución.

Entiendo además que usas una versión de java moderna (1.5 o superior). En versiones viejas era necesario declarar el classpath.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 17/10/2012, 21:57
 
Fecha de Ingreso: septiembre-2012
Ubicación: Riobamba
Mensajes: 7
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con la consola.

Solo depende si estas dentro de un paquete.
Por suposición que este dentro del paquete hola.Hola.java debes ingresar hasta la carpeta de hola y ejecutar el comando
java hola/Hola
Ahí te debe salir el mensaje.
  #6 (permalink)  
Antiguo 17/10/2012, 21:57
 
Fecha de Ingreso: septiembre-2012
Ubicación: Riobamba
Mensajes: 7
Antigüedad: 11 años, 7 meses
Puntos: 0
Mensaje Respuesta: Problema con la consola.

Solo depende si estas dentro de un paquete.
Por suposición que este dentro del paquete hola.Hola.java debes ingresar hasta la carpeta de hola y ejecutar el comando
java hola/Hola
Ahí te debe salir el mensaje.
  #7 (permalink)  
Antiguo 18/10/2012, 11:34
 
Fecha de Ingreso: septiembre-2012
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con la consola.

Cita:
Iniciado por chuidiang Ver Mensaje
Pueden pasar muchas cosas.

¿Tiene package la clase?. En principio no porque no has puesto el código. Si lo tiene la forma de ejecutar es distinta.

Si en la vetnana de comandos donde compilas y ejecutas, pones

set CLASSPATH

¿qué sale? Debe o bien no salir nada, o bien salirte algo pero que tenga el . (punto) entre los directorios de ejecución.

Entiendo además que usas una versión de java moderna (1.5 o superior). En versiones viejas era necesario declarar el classpath.

Se bueno.
La versión de Java que tengo es 1.7 y al ejecutar set classpath la respuesta es:

CLASSPATH=C:\Program Files\Java\jdk1.7.0_07\lib\tools.jar

Deberia poner otra cosa?

Gracias.
  #8 (permalink)  
Antiguo 18/10/2012, 12:00
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Problema con la consola.

Lo normal es NO poner CLASSPATH ninguno, java por defecto sabe dónde estás sus propias clases y también busca clases en tu directorio de trabajo.

Si pones CLASSPATH, sólo busca donde le dices, es decir en tu caso solo busca las clases en el tools.jar, así que NO va a encontrar ninguna clase que esté en otro sitio, ni siquiera la tuya, porque no va a ir a buscar a tu directorio de trabajo.

Así que tus opciones son
- Eliminar esa variable CLASSPATH
- Ponerla, pero añádele el directorio actual de trabajo (el directorio . ) para que ponga esto

CLASSPATH=C:\Program Files\Java\jdk1.7.0_07\lib\tools.jar;.

(fíjate en el punto y coma y un punto al final)

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 19/10/2012, 00:51
 
Fecha de Ingreso: septiembre-2012
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con la consola.

Cita:
Iniciado por chuidiang Ver Mensaje
Lo normal es NO poner CLASSPATH ninguno, java por defecto sabe dónde estás sus propias clases y también busca clases en tu directorio de trabajo.

Si pones CLASSPATH, sólo busca donde le dices, es decir en tu caso solo busca las clases en el tools.jar, así que NO va a encontrar ninguna clase que esté en otro sitio, ni siquiera la tuya, porque no va a ir a buscar a tu directorio de trabajo.

Así que tus opciones son
- Eliminar esa variable CLASSPATH
- Ponerla, pero añádele el directorio actual de trabajo (el directorio . ) para que ponga esto

CLASSPATH=C:\Program Files\Java\jdk1.7.0_07\lib\tools.jar;.

(fíjate en el punto y coma y un punto al final)

Se bueno.
Muchas gracias. Tenias razón. Lo que hac ser novato. Espero ir aprendiendo.

Etiquetas: clase, string
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 05:09.