Buenas, estoy empezando con Java, y me sale este problema del demonio cuando intento ejecutarlo desde la consola de Windows. En netbeans me funciona perfecto pero en el CMD me dice que no se ha encontrado o cargado la clase principal.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package primerproyecto;
/**
*
* @author SonnyCrockett
*/
public class PrimerProyecto {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Hola Mundo esto es Java8");
}
}
He intentado solucionarlo buscando ayuda por internet. Pasos que he hecho
- He introducido la variable de entorno desde propiedades de sistema
- He cargado la variable desde CMD con set CLASSPATH "ruta del JDK/bin"
- he desinstalado java, y netbeans, he reiniciado el sistema y lo he vuelto a instalar
y aún así me sigue dando error. >:(
Ve al directorio donde tengas el bytecode es decir el .class
Ten en cuenta q ese archivo está dentro de primerproyecto es :decir tu package
java nombrePaquete.TuClase , con el comando java lo ejecutas
E igual desde la cmd que te muestra la consola con
java -version y javac -version este último compila el .java a .class
Estoy desde el cell XD
Cita de: rub'n en 24 Octubre 2018, 20:04 PM
Ve al directorio donde tengas el bytecode es decir el .class
Ten en cuenta q ese archivo está dentro de primerproyecto es :decir tu package
java nombrePaquete.TuClase , con el comando java lo ejecutas
E igual desde la cmd que te muestra la consola con
java -version y javac -version este último compila el .java a .class
Estoy desde el cell XD
Si te he entendido; me has dicho que ejecute el nombre del paquete.class en la consola de comandos? es decir un "java nombre del paquete.class"
si es eso me da error no ha encontrado ni cargado la clase principal.
Muestra la salida en la cmd de
java -version
y
javac -version
Cita de: rub'n en 24 Octubre 2018, 20:39 PM
Muestra la salida en la cmd de
java -version
y
javac -version
esto?
24/10/2018 13:58 <DIR> .
24/10/2018 13:58 <DIR> ..
24/10/2018 19:17 461 PrimerProyecto.class
24/10/2018 13:38 470 PrimerProyecto.java
2 archivos 931 bytes
2 dirs 186.018.664.448 bytes libres
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>javac PrimerProyecto.java
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>java PrimerProyecto
Error: no se ha encontrado o cargado la clase principal PrimerProyecto
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>java PrimerProyecto.class
Error: no se ha encontrado o cargado la clase principal PrimerProyecto.class
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>
Hola,
pues no, lee bien lo que te pongo
Usa tambien GeSHI(https://3.bp.blogspot.com/-O6qDroNEzts/W8sWHPnV3MI/AAAAAAAADJw/mypp_PTYxbA_uKr7E-O-x0epDjSUdk3mwCK4BGAYYCw/s1600/geshi.gif)
Has esto en tu cmd, el comando date es solo ejemplo
(http://4.bp.blogspot.com/-koYniVeknVA/W9DyACxBxfI/AAAAAAAADKk/gcpfub0M1TInKznS3VsF70a1okWG9T0TACK4BGAYYCw/s1600/comandosJAva.gif)
Cita de: rub'n en 25 Octubre 2018, 00:30 AM
Hola,
pues no, lee bien lo que te pongo
Usa tambien GeSHI
(https://3.bp.blogspot.com/-O6qDroNEzts/W8sWHPnV3MI/AAAAAAAADJw/mypp_PTYxbA_uKr7E-O-x0epDjSUdk3mwCK4BGAYYCw/s1600/geshi.gif)
Has esto en tu cmd, el comando date es solo ejemplo
(http://4.bp.blogspot.com/-koYniVeknVA/W9DyACxBxfI/AAAAAAAADKk/gcpfub0M1TInKznS3VsF70a1okWG9T0TACK4BGAYYCw/s1600/comandosJAva.gif)
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>javac -version
javac 1.8.0_191
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>
Fijate que me creo una carpeta en el escritorio llamada como tu paquetejavac primerproyecto/PrimerProyecto.java
Este comando deberia de funcionarte ya que, con netbeans tiene el bytecode creadojava primerproyecto/PrimerProyecto
package primerproyecto;
import java.util.function.Consumer;
/**
*
* @author SonnyCrockett
*/
public class PrimerProyecto {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//System.out.println("Hola Mundo esto es Java8");
java8(System.out::println,"esto si es java8 XD");
}
private static void java8(final Consumer<String> c, final String msg) {
c.accept(msg);
}
}
(http://1.bp.blogspot.com/-zbuh0Xf2aMw/W9D307TTpXI/AAAAAAAADKw/yRvLdimZWFAvr7jZcEiVJSEirvjLo_N3gCK4BGAYYCw/s1600/execJavaJavac.gif)
si no te funciona el comando javac debes ajustarlo en el path de las variables de entorno, justo ahí tienes el falloC:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>java -version
debes moverte a la carpeta src, con el siguiente comando te mueves a través de los directorios anteriores con cd ..
debes moverte haste quedar aquíC:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src
y ejecutar desde ahí java primerproyecto/PrimerProyecto
si funciona, había escrito mal el comando lo he corregido, aún así sigue sin funcionar me dice que no tengo cargadas la clase principal, ya tengo configuradas las variables de entorno
Saludos,
- Cuando utilices Paquetes, el Main Class cambia, por ejemplo en tu caso: "primerproyecto.PrimerProyecto" esto lo puedes revisar en tu NetBeans: Click Detecho en tu Proyecto > Propiedades > Run > Main Class
- Entonces debes de compilar el .java como siempre, luego debes de situarte fuera de cualquier paquete (carpeta primerproyecto) y ejecutar la clase: java primerproyecto.PrimerProyecto
- En conclusión tienes que obtener lo siguiente:
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>javac PrimerProyecto.java
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>cd ..
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>java primerproyecto.PrimerProyecto
Hola Mundo esto es Java8
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>
-- O también así:
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\>javac primerproyecto\PrimerProyecto.java
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>java primerproyecto.PrimerProyecto
Hola Mundo esto es Java8
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>
Cita de: EdePC en 25 Octubre 2018, 04:55 AM
Saludos,
- Cuando utilices Paquetes, el Main Class cambia, por ejemplo en tu caso: "primerproyecto.PrimerProyecto" esto lo puedes revisar en tu NetBeans: Click Detecho en tu Proyecto > Propiedades > Run > Main Class
- Entonces debes de compilar el .java como siempre, luego debes de situarte fuera de cualquier paquete (carpeta primerproyecto) y ejecutar la clase: java primerproyecto.PrimerProyecto
- En conclusión tienes que obtener lo siguiente:
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>javac PrimerProyecto.java
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\primerproyecto>cd ..
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>java primerproyecto.PrimerProyecto
Hola Mundo esto es Java8
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>
-- O también así:
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src\>javac primerproyecto\PrimerProyecto.java
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>java primerproyecto.PrimerProyecto
Hola Mundo esto es Java8
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>
Me sigue diciendo que no encuentra o no carga la clase principal.
he probado una cosa que he leido:
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>Set CLASSPATH
Variable de entorno CLASSPATH no definida
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>Set CLASSPATH = "C:\Program Files\Java\jdk1.8.0_191\bin"
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>Set CLASSPATH
CLASSPATH = "C:\Program Files\Java\jdk1.8.0_191\bin"
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>java primerproyecto.Primerproyecto
Error: no se ha encontrado o cargado la clase principal primerproyecto.Primerproyecto
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src>
- Revisa bien el código que he puesto, tienes que digitarlo tal cual. Java distingue entre mayúsculas y minúsculas, y veo que has puesto: java primerproyecto.Primerproyecto en lugar de java primerproyecto.PrimerProyecto
-- Ayúdate de DIR o del Autocompletar (TAB) de la consola para ver los nombres correctos. Si el problema persiste copia tus pasos en la consola y pégalos aquí para revisarlos.
Cita de: EdePC en 25 Octubre 2018, 14:17 PM
- Revisa bien el código que he puesto, tienes que digitarlo tal cual. Java distingue entre mayúsculas y minúsculas, y veo que has puesto: java primerproyecto.Primerproyecto en lugar de java primerproyecto.PrimerProyecto
-- Ayúdate de DIR o del Autocompletar (TAB) de la consola para ver los nombres correctos. Si el problema persiste copia tus pasos en la consola y pégalos aquí para revisarlos.
ok, Ya funciona!!!! :D Muchísimas gracias!!! y a usted también @rub'n
¿Por qué hay que ejecutarlo con el main, y no con el fichero PrimerProyecto.java?
El manual que sigo, dice que hay que hacer esto:
Javac PrimerProyecto.java
Para crear el class
y
"Java PrimerProyecto", para ejecutarlo
Cita de: SonnyCrockett en 25 Octubre 2018, 19:16 PM
ok, Ya funciona!!!! :D Muchísimas gracias!!! y a usted también @rub'n
¿Por qué hay que ejecutarlo con el main, y no con el fichero PrimerProyecto.java?
El manual que sigo, dice que hay que hacer esto:
Javac PrimerProyecto.java
Para crear el class
y
"Java PrimerProyecto", para ejecutarlo
- Cierto, es así siempre y cuando no uses paquetes, que lo normal es no utilizarlos en ejercicios muy simples o de adiestramiento, pero ya luego se ve que se usan varios Paquetes y referencias a clases y librerías donde el propio NetBeans ayuda mucho generando el CLASSPATH adecuando para el programa.
-- Por ejemplo si tu ejercicio necesitas utilizar unas librerías .jar ubicadas todas en una carpeta llamada "lib", se tendría que ejecutar algo así:
java -classpath ".;.\lib\*" primerproyecto.PrimerProyect
-- Más info: https://en.wikipedia.org/wiki/Classpath_%28Java%29