Problema con .class
En la universidad no están enseñando java, el profesor nos dio un .class que se llama Teclado.class.
Esté es el código:
Mi duda es, por que no lee Teclado.class al compilar el programa y ejecutarlo me sale algo así:
Tengo dentro de la misma carpeta el .class
eva:/home/bucio/Politecnico/programacion/Java/Ciclos# ls -lt
total 12
-rwxrwxrwx 1 root root 817 ago 4 17:03 ceros.java
-rw-r--r-- 1 root root 1216 ago 4 17:02 ceros.class
-rwxr-xr-x 1 bucio bucio 2728 jul 28 16:58 Teclado.class <-- Ese no lo lee
:-) Gracias ¡¡
- Inicie sesión o regístrese para enviar comentarios
Sí lo lee
Creo que no fue error otrográfico cuando pusiste "no estan enseñando Java" jej... Los .java son archivos fuentes y se compilan a .class; no tienes el Teclado.java pero sí tienes la clase compilada, no necesitas el .java para correr tu programa, solamente los binarios (o sea los .class). Tu problema no es porque no se lea el Teclado.class.
Lo primero que deberían enseñarles cuando están aprendiendo Java es leer el stack trace, siempre.
La excepción que ocurrió fue de que trataste de obtener caracteres fuera del rango de una cadena, en el método Teclado.Lee_String que fue invocado por el método Teclado.Lee_float; eso significa que sí lee tu programa la clase Teclado (de otro modo el problema sería un ClassNotFoundException).
Necesitas el fuente de la clase Teclado para poder resolver tu problema.
gracias
Gracias. pediré el códe ;-)
código de Teclado.java
Eh compilado el .java pues no lo agarraa :(
Re: código de Teclado.java
Rafael,
Me animaría a tratar de contestar, pero entiendo muy muy poco de lo que intentas expresar.
Hola
Revisé rápidamente tu código y el error se encuentra en el método Lee_String() de la clase Teclado. En ese método hay una instrucción que te está causando problemas. La instrucción es: NumBytesLeidos = Teclado.read(Valor);
Esta instrucción causa problemas ya que si hay un error de lectura , como es tu caso, entonces la variable NumBytesLeido sigue siendo 0. Y cuando se llama a continuacion a la instrucción "return Caracteres.substring(0,NumBytesLeidos-2);" hay problemas ya que NumBytesLeidos-2 va a ser negativo y esto te causa el mensaje que te dice fuera de los limites. Es lo que te puedo decir de momento. Por otro lado no te puedo ayudar más porque no sé que quieres que haga el programa. Te sugiero que pruebes cada uno de los métodos de la clase Teclado, a fin de que la comprendas mejor antes de usarla. Saludos
gracias
Bueno analizaré, el código gracias a los dos :-)
Solo haz un pequeño cambio en tu Teclado.java
String Caracteres = new String(Valor);
return Caracteres.substring(0,NumBytesLeidos-1);