Problema JAVA

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Costa de Marfil
    Pelotudo
    • 27-03-2006
    • 3671

    #1

    Problema JAVA

    Hace poco en la facultad empezamos con java. En la practica me surge un error para todo programita. Lo edito, lo compilo, y hasta ahi todo bien, el problema surge a la hora de ejecutarlo. Me salta el siguiente error:

    Excepiton in thread "main" java.lang.NoClassDefFoundError: CAritmetica

    (Caritmetica es el nombre del .java o del .class). (Es un ejemplo que saque de un libro)


    Capaz, sea una boludez, pero soy nuevo en esto, y no tengo al profe cerca hasta la semana que viene.
    Editado por última vez por Costa de Marfil; 05-09-2006, 12:40 PM.
  • Kpoyo
    Mandatory rape!
    • 16-05-2004
    • 8042

    #2
    Eso suena a que no estas cargando librerias, no se.

    Mira si hay algo como #include <> en java y fijate si lo tenes puesto.

    Comentario

    • Costa de Marfil
      Pelotudo
      • 27-03-2006
      • 3671

      #3
      Originalmente publicado por Que Pollo!
      Eso suena a que no estas cargando librerias, no se.

      Mira si hay algo como #include <> en java y fijate si lo tenes puesto.
      cargar librerias? no se nada... me voy a estudiar. (como es eso?)

      lo unico que hice fue instalar el jdk, despues hice el archivo CAritmetica.java, lo compile, aparecio CAritmetica.class, lo ejecute y salio el error ese.


      este es el CAritmetica.java:

      class CAritmetica
      {
      /*
      * Operaciones aritméticas
      */
      public static void main (String[] args)
      {
      int dato1, dato2, resultado;

      dato1 = 20;
      dato2 = 10;

      // Suma
      resultado = dato1 + dato2;
      System.out.println(dato1 + " + " + dato2 + " = " + resultado);

      // Resta
      resultado = dato1 - dato2;
      System.out.println(dato1 + " - " + dato2 + " = " + resultado);

      // Producto
      resultado = dato1 * dato2;
      System.out.println(dato1 + " * " + dato2 + " = " + resultado);

      // Cociente
      resultado = dato1 / dato2;
      System.out.println(dato1 + " / " + dato2 + " = " + resultado);
      }
      }

      Comentario

      • acha
        Mega Egelito
        • 10-11-2004
        • 3902

        #4
        Si, después de haber compilado un código fuente sin errores y obtener los correspondientes ficheros class, se ejecuta y aparece por consola el siguiente mensaje:

        Exception in thread main java.lang.NoClassDefFoundError

        significa que se ha producido un error de ejecución. A la máquina virtual no le llega el class asociado a la clase principal del código fuente

        Posibles causas:

        * Nombre del fichero class que debe ejecutarse no tiene el mismo nombre que la clase principal (aquella que contiene al método main, es decir, al punto de entrada al programa).

        * Se ha escrito la extensión class a continuación del nombre de la clase principal al tratar de ejecutar el programa.

        * El fichero class que se pretende ejecutar no tiene clase principal.
        ...

        tambien note qeu la clase
        es

        class CAritmetica

        proba

        public class CAritmetica
        Editado por última vez por acha; 05-09-2006, 02:54 PM.

        Comentario

        • Costa de Marfil
          Pelotudo
          • 27-03-2006
          • 3671

          #5
          Originalmente publicado por acha
          ...

          tambien note qeu la clase
          es

          class CAritmetica

          proba

          public class CAritmetica

          voy a probar despues esto...no estoy en mi casa.




          * El fichero class que se pretende ejecutar no tiene clase principal.
          como me doy cuenta? como se soluciona?
          Editado por última vez por Costa de Marfil; 05-09-2006, 03:20 PM.

          Comentario

          • GADORCHA
            Legendary
            • 17-05-2003
            • 12653

            #6
            jaua yo empece hace poco y no se mucho. Pero por lo que vi, tu clase ya tiene un main, asique eso no debe ser.

            Por que no probas usar un entorno de desarrollo (yo estoy aprendiendo con el eclipse). Es muy util, cuando vas metiendo codigo te dice al toque si tenes un error y donde se ubica.


             

            Comentario

            • Urban silence
              Egelito activo
              • 30-07-2004
              • 300

              #7
              Para mí es lo del public.
              http://las-frases.com.ar
              Frases de pensadores, filósofos o simplemente gente común.

              Comentario

              • german1410
                guasca @_@
                • 05-07-2006
                • 259

                #8
                Si mal no me acuerdo java pone como scope (public, private, protected), a las cosas que no se les puso uno, privado para el paquete, es decir que si intentas acceder a la clase fuera del paquete te manda a cagar, probá con el public.

                Fuck!!!!!!!!!! my puppet is crazy

                Comentario

                • acha
                  Mega Egelito
                  • 10-11-2004
                  • 3902

                  #9
                  las pone como protegidas por defecto....espero....sino estuve equivocado todo este tiempo

                  Comentario

                  • GADORCHA
                    Legendary
                    • 17-05-2003
                    • 12653

                    #10
                    pero ahi el tiene una sola clase, no definio ni llamo a ninguna otra. En que influye que la clase sea public o private? (pregunto por noob nomas)


                     

                    Comentario

                    • pupinito
                      A fool on the hill
                      • 04-10-2005
                      • 772

                      #11
                      Eso de arriba de todo tiene que andar.
                      No se que estas usando (windows, linux), pero basicamente en linux:

                      $ javac archivo.java (que tiene ese codigo que pusiste arriba)
                      $ java class (class es el nombre que le pusiste a la clase, sin .class ni nada)

                      Si no sabes como esta la variable de PATH, corre la clase de java (java nombredeclase) en el mismo directorio donde esta el archivo.class, con eso no deberias tener ningun problema.
                      Lo probe asi y anda, si seguis con problemas avisa.

                      Suerte


                      REFLEXION:
                      "La verdadera Bravura del Hombre está en llegar a casa borracho, de madrugada, ver a la esposa esperando en la puerta con una escoba en la mano y tener el coraje de preguntarle:
                      ¿Vas a barrer o vas a volar?"

                      Comentario

                      • Urban silence
                        Egelito activo
                        • 30-07-2004
                        • 300

                        #12
                        Originalmente publicado por german1410
                        Si mal no me acuerdo java pone como scope (public, private, protected), a las cosas que no se les puso uno, privado para el paquete, es decir que si intentas acceder a la clase fuera del paquete te manda a cagar, probá con el public.
                        Es que se cuando vos querés hacer un programa la clase que contiene al método main TIENE que ser public. Sino la JVM no puede ejecutar el programa.

                        Igual no nos dijo si era eso o no.
                        http://las-frases.com.ar
                        Frases de pensadores, filósofos o simplemente gente común.

                        Comentario

                        • Costa de Marfil
                          Pelotudo
                          • 27-03-2006
                          • 3671

                          #13
                          Gracias por la ayuda. Paso que...

                          Puse public class CAritmetica y no era ese el problema.

                          Solucione todo con el entorno de desarrollo integrado, el netbeans (me vino en el cd del libro y no lo habia instalado). Ahora la vida es mas facil.

                          Segun leia en el libro (tuve que saltear algunos capitulos) el problema puede ser porque las variables de entorno PATH y CLASSPATH, no estan bien establecidas, ahora, como solucionar eso, no se (y tampoco estoy seguro si ese es el problema), pero cuando instalas el netbeans eso se acomoda automaticamente. Ya no salta el error.
                          Editado por última vez por Costa de Marfil; 06-09-2006, 03:06 PM.

                          Comentario

                          • acha
                            Mega Egelito
                            • 10-11-2004
                            • 3902

                            #14
                            es lo que te dijo pupinito ahi arrriba

                            Si no sabes como esta la variable de PATH, corre la clase de java (java nombredeclase) en el mismo directorio donde esta el archivo.class, con eso no deberias tener ningun problema.

                            Comentario

                            • Costa de Marfil
                              Pelotudo
                              • 27-03-2006
                              • 3671

                              #15
                              si, ya lo habia leido.. ahora tengo otras dudas. otro dia las posteo.

                              Comentario

                              Trabajando...