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 ¡¡

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

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 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.

Imagen de Rafael Bucio

gracias

Gracias. pediré el códe ;-)

Imagen de Rafael Bucio

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.

Imagen de mathemathician

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

Imagen de Rafael Bucio

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);