Antes de nada, daros mil gracias y pediros por favor, paciencia con este novato que recién empieza a programar en Java. Informaros de los datos que creo que os servirán para ayudarme mejor en mi duda ( no cabe decir que si se necesitara de algún otro mas, pedir y estaré encantado de darlos).
S.O Ubuntu 12.04 32 bits
Ide : NetBeans 7.2.1
Resultado del comando javac -version a traves de consola:
Resultado del comado java -version a traves de consola :
Código:
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) Server VM (build 23.5-b02, mixed mode)
Y la duda es la siguiente:
Creo a través del IDE Netbeans el siguiente programa de prueba:
Código:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package holamundo;
/**
*
* @author outback
*/
public class HolaMundo {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hola Mundo!");
}
}
Bien despues de comprobar que el IDe no arroja ningun error ajusto el main principal a HolaMundo a traves de Run - Set Main Proyect y compilo antes comprobado en la consola de salida del IDE que todo funciona correctamente y el objeto String aparece sin problemas.
Una vez hecho esto, salgo del IDE y me dirijo mediante la consola al directorio del proyecto que NetBeans creo, y en el subdirectorio classes encuentro la clase creada llamada HolaMundo.class
Seguidamente y a traves de la consola ejecuto el comando:
java HolaMundo y el resultado es el siguiente:
Código:
Exception in thread "main" java.lang.NoClassDefFoundError: HolaMundo (wrong name: holamundo/HolaMundo)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)
Por el contrario si copio el código en un editor de textos (gEdit en mi caso) lo guardo como HolaMundo.java y seguidamente a través de consola lo compilo con el comando javac HolaMundo.java el archivo que genera esta compilación si que funciona correctamente a través de la linea de comandos.
¿Porque no puedo ejecutar los programas compilados en NetBeans en la linea de comando de Ubuntu a traves de java HolaMundo, y sin embargo segun el IDE todo esta correcto?
Un saludo, estoy mas perdido que un chino en un garaje. Lo dicho mil perdones y una ayudita para este pobrezillo novatón del java
Saludos
Out