No se encuentra clase principal

Iniciado por SonnyCrockett, 24 Octubre 2018, 19:30 PM

0 Miembros y 1 Visitante están viendo este tema.

SonnyCrockett

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.  >:(

rub'n

#1
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


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

SonnyCrockett

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.

rub'n

#3
Muestra la salida en la cmd de

Código (bash) [Seleccionar]
java -version

 y

Código (bash) [Seleccionar]
javac -version


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

SonnyCrockett

Cita de: rub'n en 24 Octubre 2018, 20:39 PM
Muestra la salida en la cmd de

Código (bash) [Seleccionar]
java -version

 y

Código (bash) [Seleccionar]
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>

rub'n

Hola,

pues no, lee bien lo que te pongo


Usa tambien GeSHI






Has esto en tu cmd, el comando date es solo ejemplo





rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

SonnyCrockett

#6
Cita de: rub'n en 25 Octubre 2018, 00:30 AM
Hola,

pues no, lee bien lo que te pongo


Usa tambien GeSHI






Has esto en tu cmd, el comando date es solo ejemplo






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>




rub'n

#7
Fijate que me creo una carpeta en el escritorio llamada como tu paquete

Código (bash) [Seleccionar]
javac primerproyecto/PrimerProyecto.java

Este comando deberia de funcionarte ya que, con netbeans tiene el bytecode creado
Código (bash) [Seleccionar]
java primerproyecto/PrimerProyecto

Código (java) [Seleccionar]
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);
   }

}



si no te funciona el comando javac debes ajustarlo en el path de las variables de entorno, justo ahí tienes el fallo


Código (bash) [Seleccionar]
C:\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
Código (bash) [Seleccionar]
con cd ..

debes moverte haste quedar aquí
Código (bash) [Seleccionar]
C:\Users\SonnyCrockett\Documents\NetBeansProjects\PrimerProyecto\src

y ejecutar desde ahí
Código (bash) [Seleccionar]
java primerproyecto/PrimerProyecto


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

SonnyCrockett

#8
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

EdePC

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>