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

Error Simple?, no encuentra un simbolo

Estas en el tema de Error Simple?, no encuentra un simbolo en el foro de Java en Foros del Web. Bueno tengo 3 archivos de java y no encuentro mi problema, al compilar Transporte.java dice que no encuentra el símbolo I de la interface ICalculo. ...
  #1 (permalink)  
Antiguo 30/06/2012, 00:49
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Error Simple?, no encuentra un simbolo

Bueno tengo 3 archivos de java y no encuentro mi problema, al compilar Transporte.java dice que no encuentra el símbolo I de la interface ICalculo. Al compilar TransporteLimitado.java dice que no encuentra el símbolo T de Transporte......

Código de ICalculo.Java:

//ICalculo.java
public interface ICalculo{
public final static int VALOR_KM = 0;
public void reiniciarKMS();
}

Código de Transporte.Java:

//Transporte.java
public abstract class Transporte implements ICalculo{ //EN ESTA I TIRA ERROR
private String patente;
private String conductor;
private int kilometrosAsignados;
private int costoMantecion;
private boolean enFuncionamiento;

//constructores
public Transporte(){
}
public Transporte(String patente, String conductor, int kilometrosAsignados, int costoMantecion, boolean enFuncionamiento){
this.patente = patente;
this.conductor = conductor;
this.kilometrosAsignados = kilometrosAsignados;
this.costoMantecion = costoMantecion;
this.enFuncionamiento = enFuncionamiento;
int kilometrosRecorridos = 0;
}

//setters
public void setPatente(String patente){
this.patente = patente;
}
public void setConductor(String conductor){
this.conductor = conductor;
}
public void setKilometrosAsignados(int kilometrosAsignados){
this.kilometrosAsignados = kilometrosAsignados;
}
public void setCostoMantencion(int costoMantecion){
this.costoMantecion = costoMantecion;
}
public void setEnFuncionamiento(boolean enFuncionamiento){
this.enFuncionamiento = enFuncionamiento;
}

//getters
public String getPatente(){
return this.patente;
}
public String getConductor(){
return this.conductor;
}
public int getKilometrosAsignados(){
return this.kilometrosAsignados;
}
public int getCostoMantencion(){
return this.costoMantecion;
}
public boolean getEnFuncionamiento(){
return this.enFuncionamiento;
}

//metodos
public abstract void calcularGastosMes();
public abstract void desplegarFactura();

public void reiniciarKMS(){

}
public void agregarKilometrosRecorridos(int kilometrosRecorridos){

}
}

Código de TransporteLimitado.Java:

//TransporteLimitado.java
public class TransporteLimitado extends Transporte{ // EN ESTA T TIRA ERROR
//constructores
public TransporteLimitado(){
}
public TransporteLimitado(String patente, String conductor, int kilometrosAsignados, int costoMantecion, boolean enFuncionamiento){
super(patente, conductor, kilometrosAsignados, costoMantecion, enFuncionamiento);
}

//metodos
public void calcularGastosMes(){
}
public void desplegarFactura(){
}
}

Bueno puede que el error sea bastante obvio, pero yo no he podido solucionarlo .....tenia otros errores y me quede con este, ojala alguien le atine. de antemano MUCHAS GRACIAS :)

Última edición por miztkooo; 30/06/2012 a las 00:56
  #2 (permalink)  
Antiguo 30/06/2012, 04:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Error Simple?, no encuentra un simbolo

Hola:

No creo que el error sea que no encuentra la I o la T, probablemente lo que no encuentra es la interfaz ICalculo o la clase Transporte. Sin saber que IDE usas, en qué directorios tienes los ficheros .java o cómo compilas, es difícil ayudarte, así que sólo puedo darte unas ideas generales para que verifiques.

Si las clases/interfaces están en distinto package, acuérdate de poner los import.

Si están en el mismo package, no necesitas import, siempre que las estés compilando en tu IDE dentro de un mismo proyecto. Si las clases andan en proyectos del ide distintos, debes poner la dependencia entre proyectos.

También es posible que se "encadenen" los errores. Si Transporte no compila (porque no encuentra ICalculo, entonces TransporteLimitado tampoco compilará por no encontrar Transporte, ya que este último no ha compilado y no lo puede encontrar. ¿Compila correctamente la primera interfaz de todas ICalculo?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/06/2012, 12:58
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

No creo que el error sea que no encuentra la I o la T, probablemente lo que no encuentra es la interfaz ICalculo o la clase Transporte. Sin saber que IDE usas, en qué directorios tienes los ficheros .java o cómo compilas, es difícil ayudarte, así que sólo puedo darte unas ideas generales para que verifiques.

Si las clases/interfaces están en distinto package, acuérdate de poner los import.

Si están en el mismo package, no necesitas import, siempre que las estés compilando en tu IDE dentro de un mismo proyecto. Si las clases andan en proyectos del ide distintos, debes poner la dependencia entre proyectos.

También es posible que se "encadenen" los errores. Si Transporte no compila (porque no encuentra ICalculo, entonces TransporteLimitado tampoco compilará por no encontrar Transporte, ya que este último no ha compilado y no lo puede encontrar. ¿Compila correctamente la primera interfaz de todas ICalculo?

Se bueno.
Me refiero que el tongo de erro marca la I de ICalculo en transporte.java y en la T de Transporte de TransporteLimitado.java, porque no encuentra el simbolo ..o la clase. Pues si, estan en una misma carpeta o directorio, compilo asi "javac ICalculo.java" y pues bien, el archivo ICalculo si compila a la perfeccion, entonces eso me tiene abrumado, porque no entiendo porque me da el error "de que no encuentra el simbolo" clase Transporte e ICalculo. EL codigo esta ahi, ahora bien que podra ser .....el unico que compila perfecto es ICalculo.

¿Qué podrá ser?, gracias.
  #4 (permalink)  
Antiguo 30/06/2012, 14:05
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Error Simple?, no encuentra un simbolo

Hola:

He copiado tu codigo en tres ficheros en el mismo directorio y compila perfectamente. De hecho, compilando solo javac TransporteLimitado.java me compila automáticamente las otras dos clases.

¿Qué versión de javac estás usando? Creo recordar que con versiones más antiguas no era igual de fácil.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 30/06/2012, 14:19
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Hola:

Ocupo: jdk1.7.0_05 ---> Si me parece extraño que a mi me arroje error, siendo que el código esta perfectamente. ¿Utilizo mejor el 1.6? ó ¿Reinstalo?. Gracias
  #6 (permalink)  
Antiguo 30/06/2012, 14:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Error Simple?, no encuentra un simbolo

No sé, yo he probado con el 1.6, no sé si hay cambios en el 1.7.

Prueba a compilar así javac *.java

y si no funciona, prueba esto otro javac -classpath . *.java

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 30/06/2012, 14:42
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Cita:
Iniciado por chuidiang Ver Mensaje
No sé, yo he probado con el 1.6, no sé si hay cambios en el 1.7.

Prueba a compilar así javac *.java

y si no funciona, prueba esto otro javac -classpath . *.java

Se bueno.
con javac *.java --> me compila todo sin error, al intentar correr el programa dice que no encuentra la clase principal. Ya sea Transporte o ICalculo.

con javac -classpath.*.java --> no recuerdo que salia, ahora instalare jdk6, porque con ese en mi universidad no tenia problemas ... veremos que pasa.

  #8 (permalink)  
Antiguo 30/06/2012, 14:50
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Error Simple?, no encuentra un simbolo

Hola:

la clase principal.... ninguna de tus clases tiene método main(). Sin un main() no se puede ejecutar un programa.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 30/06/2012, 14:51
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Persiste en el mismo error. Ejecuto javac *.java y compila todo.
Ejecuto javac -classpath.*.java y me sale lo siguiente:

javac: file not found: -classpath.*.java
Usage: javac <options> <source files>
use -help for a list of possible options
  #10 (permalink)  
Antiguo 30/06/2012, 14:52
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

la clase principal.... ninguna de tus clases tiene método main(). Sin un main() no se puede ejecutar un programa.

Se bueno.
ME EXPRESE MAL, quise decir que al ejecutar un fichero como Transporte.java, dice que no encuentra la clase ICalculo. Al ejecutar TransporteLimitado.java dice que no encuentra la clase Transporte, a eso me referia con clase principal, claro esta que me exprese mal.
  #11 (permalink)  
Antiguo 30/06/2012, 15:00
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

En fin seguiré con el main de los programas, ya que todavía no me compila Transporte.java y TransporteLimitado.java - seguiré con los demás archivos, pero raro no ? si a ti te compilo todo ? ...no entiendo la verdad, gracias por todo. Ahora que podra ser esto?

Ejecuto javac -classpath.*.java y me sale lo siguiente:

javac: file not found: -classpath.*.java
Usage: javac <options> <source files>
use -help for a list of possible options
  #12 (permalink)  
Antiguo 30/06/2012, 15:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Error Simple?, no encuentra un simbolo

Detrás de -classpath ... ¿hay un espacio y un punto o solo has puesto el punto sin espacio? Una vez te compile todo (con javac *.java decías que sí lo había hecho), puedes ejecutar con

java -classpaath . ClaseQueTengaMain

Si realmente lo hemos puesto igual (los tres ficheros .java en el mismo directorio y en ese directorio javac), supongo que el problema puede ser la versión de java. De todas formas, haz una prueba. Desde línea de comandos teclea

set CLASSPATH

y dime qué sale. Posiblemente tienes esa variable con algo definido que no es lo que debe. Deberías tenerla vacía (no existir) o bien debe incluir el directorio actual . (punto) para que te funcione. Por ejemplo, si la defino con un path cualquiera, ya me sale el mismo error que a tí

C:\Users\chuidiang\kk>set CLASSPATH=C:\un\path\cualquiera

C:\Users\chuidiang\kk>javac TransporteLimitado.java
TransporteLimitado.java:2: cannot find symbol
symbol: class Transporte
public class TransporteLimitado extends Transporte{ // EN ESTA T TIRA ERROR
^
1 error

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 30/06/2012 a las 15:07
  #13 (permalink)  
Antiguo 30/06/2012, 15:06
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Cita:
Iniciado por chuidiang Ver Mensaje
Detrás de -classpath ... ¿hay un espacio y un punto o solo has puesto el punto sin espacio? Una vez te compile todo (con javac *.java decías que sí lo había hecho), puedes ejecutar con

java -classpaath . ClaseQueTengaMain

Si realmente lo hemos puesto igual (los tres ficheros .java en el mismo directorio y en ese directorio javac), supongo que el problema puede ser la versión de java. De todas formas, haz una prueba. Desde línea de comandos teclea

set CLASSPATH

y dime qué sale.

Se bueno.
Puse el punto sin espacio así: javac -classpath.*.java

Cuando cree algun main de algun archivo correre el archivo como me dijiste java - classpath.MAIN --> aun no tengo ningun main.

pongo set CLASSPATH y me sale lo siguiente:

Classpath=C:\Archivos de Programa\Java\jdk1.6.0_33\bin\src.zip
  #14 (permalink)  
Antiguo 30/06/2012, 15:21
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Cita:
Iniciado por chuidiang Ver Mensaje
Detrás de -classpath ... ¿hay un espacio y un punto o solo has puesto el punto sin espacio? Una vez te compile todo (con javac *.java decías que sí lo había hecho), puedes ejecutar con

java -classpaath . ClaseQueTengaMain

Si realmente lo hemos puesto igual (los tres ficheros .java en el mismo directorio y en ese directorio javac), supongo que el problema puede ser la versión de java. De todas formas, haz una prueba. Desde línea de comandos teclea

set CLASSPATH

y dime qué sale. Posiblemente tienes esa variable con algo definido que no es lo que debe. Deberías tenerla vacía (no existir) o bien debe incluir el directorio actual . (punto) para que te funcione. Por ejemplo, si la defino con un path cualquiera, ya me sale el mismo error que a tí

C:\Users\chuidiang\kk>set CLASSPATH=C:\un\path\cualquiera

C:\Users\chuidiang\kk>javac TransporteLimitado.java
TransporteLimitado.java:2: cannot find symbol
symbol: class Transporte
public class TransporteLimitado extends Transporte{ // EN ESTA T TIRA ERROR
^
1 error

Se bueno.
Leyendo despues que editaste tu post, claro tenia la misma direccion que el path agregando src.zip, para solucionarlo hice:

set CLASSPATH= (NADA)

y al compilar mis archivos, funciono. MARAVILLA!!!

yo siempre ejecutaba set path=C: ...... pero me aburrí de escribirlo siempre así que lo agregue a la variable de entorno de MI PC. Un amigo me dijo que creara otra variable con el nombre Classpath y le agregara la misma dirección que al path agregándole \src.zip --> yo dije, bueno lo haré así.

Ahora setie el classpath en blanco y funciono mi compilación.!!!!!

¿Porqué me habrá dicho que agregara esa variable de entorno y viendo otras web's también dicen que lo hagan?
  #15 (permalink)  
Antiguo 30/06/2012, 15:43
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Error Simple?, no encuentra un simbolo

Hola:

El classpath por defecto de java incluye todo lo necesario de java estándar y el directorio actual, por lo que no es necesario crear esa variable CLASSPATH si no necesitas nada más. En versiones antiguas de java (muy antiguas) el directorio actual no venía incluido y por eso había que crear esa variable.

En cualquier caso, si necesitaras algo más no estándar en java (un driver de base de datos, por ejemplo, o alguna otra librería o incluso otro proyecto tuyo), si tienes que poner ese CLASSPATH, pero como suele ser sólo para ese proyecto concreto que estás haciendo, lo normal es hacer algún tipo de script (un .bat) que cree esa variable o que contenga los comandos de compilado o ejecución con la opción -classpath con todos los directorios necesarios.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #16 (permalink)  
Antiguo 30/06/2012, 15:46
 
Fecha de Ingreso: mayo-2012
Ubicación: Valparaiso
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Error Simple?, no encuentra un simbolo

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

El classpath por defecto de java incluye todo lo necesario de java estándar y el directorio actual, por lo que no es necesario crear esa variable CLASSPATH si no necesitas nada más. En versiones antiguas de java (muy antiguas) el directorio actual no venía incluido y por eso había que crear esa variable.

En cualquier caso, si necesitaras algo más no estándar en java (un driver de base de datos, por ejemplo, o alguna otra librería o incluso otro proyecto tuyo), si tienes que poner ese CLASSPATH, pero como suele ser sólo para ese proyecto concreto que estás haciendo, lo normal es hacer algún tipo de script (un .bat) que cree esa variable o que contenga los comandos de compilado o ejecución con la opción -classpath con todos los directorios necesarios.

Se bueno.
Amigo mío me has sido de gran ayuda, lamento haberte causado tantos problemas, ya que, has sido el único que me has contestado hasta resolver mi problema, de antemano muchas gracias. Saludos.

Etiquetas: encuentra, simbolo, simple
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 08:24.