Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Lopardo en 12 Noviembre 2006, 17:25 pm



Título: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Lopardo en 12 Noviembre 2006, 17:25 pm
Hola.

Como logro compilar un .java que contiene errores?... En realidad el codigo no contiene errores,  lo que pasa es que este hace referencia a clases que no se encuentran en el paquete, pero eso no importa porque luego las voy a añadir.

En esencia es esto lo que quiero hacer:

Tengo esta clase:

class clase01
  {
    public static void main(String args[])
      {
        clase02 ob = new clase02();
        ob.imprimir();
      }
  }

Pero esta no la tengo:

class clase02
 {
   void imprimir()
     {
       System.out.println("Esto es un ejemplo");     
     }
 }

Si trato de compilar la clase01 esto daría error, ya que no encontraria clase02.class (el cual contiene el metodo imprimir invocado por la clase01).

de aqui surge mi pregunta.. Como logro compilar la clase01 sin que la clase02 este presente.

Saludos...


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: SeniorX en 12 Noviembre 2006, 17:57 pm
Quizas me equivoco pero si tienes un metodo main, no puede compilar como clase, ya que tiene punto de entrada y salida.

Pero para compilar una clase es cosa de ir file/ new proyect/ new class library.


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Lopardo en 12 Noviembre 2006, 18:24 pm
Ok.. Pero al compilarlo me diría que no se encuentra la clase a la cual se hace referencia..

Osea lo que quiero es que lo compile asi tenga errores. Me supongo que si creo una class library no me va a permitir compilar con errores.

saludos


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Ragnarok en 12 Noviembre 2006, 21:57 pm
Entre las normas está poner el código entre las etiquetas de código, como la firma de SeniorX.

Que yo sepa no lo vas a poder compilar sin esa clase, a menos que la utilices como una dll, pero al menos tendrías que tener el interfaz si no me equivoco. Puedes hacer un prototipo de la clase con métodos que no hagan nada en realidad y sin miembros para que te deje compilar.


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Casidiablo en 13 Noviembre 2006, 01:38 am
Citar
Puedes hacer un prototipo de la clase con métodos que no hagan nada en realidad y sin miembros para que te deje compilar.

Exacto!!! Sin el archivo que te falta olvidate de compilar eso, java no lo permite.

Saludos!!!


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Lopardo en 15 Noviembre 2006, 17:55 pm
Es buena idea. Pero cuando se trata de muchos metodos y muchas clases.. Resultaría un poco trabajoso hacer un prototipo de ellas...

Bueno continuaré buscando como hacerlo, debe existir una forma..

Saludos.


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Lopardo en 20 Noviembre 2006, 22:05 pm
Decompile una de las clases de un programa y me he enterado que tiene metodos con el mismo nombre. Como es posible esto?... es más o menos lo que pregunto. es decir eso deberia dar error.


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Ragnarok en 20 Noviembre 2006, 23:25 pm
Eso se llama "sobrecarga", mientras los argumentos sean distintos no pasa nada.


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Casidiablo en 20 Noviembre 2006, 23:43 pm
Como lo ha dicho Ragnarok se llama sobrecarga y tiene muchas ventajas... ya que permite manejar con el mismo nombre de funcion diferentes tipos y catidades de parámetros. Tambien se puede utlizar en constructores proporcionando grandes ventajas.

Saludos!!!


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Lopardo en 23 Noviembre 2006, 23:55 pm
Si eso lo se..Pero me refiero a que tienen los mismos parametros...

No son asi... (asi no da error, es como dicen ustedes estan sobrecargados)

public void metodo1(int a){...}

public void metodo1(int a, int b){...}

son algo asi..

public void metodo2(int a){...}
public void metodo2(int a){...}

o

public int metodo2(int a){...}
public void metodo2(int a){...}

Osea me supongo que esto esta mal.. Porque como es lógico a la hora de llamar uno de estos metodos no se podrá distinguir a quien llaman...

Algo así es lo que esta en el .class que decompile... como es posible que lograron compilar algo asi.

Si quieren se lo paso para que lo vean... (el .class)


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Casidiablo en 24 Noviembre 2006, 22:02 pm
No creo en este:

public void metodo2(int a){...}
public void metodo2(int a){...}

Este se diferencia en el valor de retorno... creo que es posible.

public int metodo2(int a){...}
public void metodo2(int a){...}


Saludos!!!


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Lopardo en 25 Noviembre 2006, 16:39 pm
Aunque se diferencien en el valor que retorne.. Como el compilador va a saber cual de los metodos se esta llamando?...


Título: Re: Compilar un *.java a *.class (el *.java contiene errores)
Publicado por: Casidiablo en 26 Noviembre 2006, 19:21 pm
Por ejemplo si se llama al método así:

Código:
metodo2(5)

El compilador podría determinar que debe llamar al método que retorna void. Mientras que si se hace así:

Código:
int x = metodo2(5)

El compilador puede determinar que se está llamando al método que retorna un entero.

Saludos!!!