Imposible encontrar o cargar la clase

Resuelto
bilach -  
KX Mensajes publicados 19031 Estado Moderador -
Hola,

acabo de empezar en Java y aquí está mi primer problema...
"imposible encontrar o cargar la clase principal" seguida del nombre de la clase
cuando ejecuto el comando "JAVA" en el símbolo del sistema.
Primero he compilado el archivo .java con el comando JAVAC
no ha habido errores al ejecutar este comando.

Como recién estoy comenzando, no estoy seguro de si es correcto o no, pero aquí está mi pequeño primer programa (código fuente):

public class HelloImad { public static void main(String[] args) { int i = 0; while (i < 5) { System.out.println("¡Hola Mundo!"); i++; } } }


Ayúdame, por favor.

9 respuestas

  1. MagicSonic Mensajes publicados 1 Estado Miembro 6
     
    ¡Hola a todos!

    Quizá pueda ayudarles porque mi problema se parecía al suyo...(compilación que funciona pero ejecución que no quiere arrancar: "No encuentro la función estática o la clase que la contiene blablabla" < - No me importa, ¡que funcione y punto!).

    Para que todo funcione correctamente, es necesario verificar los siguientes puntos:
    • Su variable PATH contiene bien el camino hacia el archivo bin del JDK (en mi caso "C:\Program Files\Java\jdk1.6.0_45\bin"). Eso en ustedes está bien porque pudieron compilar (si tienen un mensaje de error que dice que javac, java... no puede ser encontrado o que no es un comando reconocido, su primer problema viene de aquí).
    • Una cosa muy simple, pero verifiquen bien que su clase que contiene la función main pública y estática sea realmente pública (el compilador no les dirá nada :/):


    public class Main { public static void main(String args[]) { System.out.println("Hello world!"); } }
    • Por último, los comandos a ejecutar para compilar todo son (en windows):


    cd LaCarpetaQueContieneSusClases // En mi caso cd Escritorio\TestJava java -cp "%cd%" NombreDeSuClase // En el ejemplo es Main (sin el class!)


    El primer comando los coloca en la carpeta donde están sus archivos .class (obtenidos gracias a la compilación usando javac). Es indispensable.

    El segundo lanza la ejecución. La bandera cp significa classpath (así le decimos explícitamente a java dónde se encuentran nuestros .class). El valor ""%cd%"" es la ruta absoluta hasta la Carpeta LaCarpetaQueContieneSusClases (lo pongo entre """ porque de lo contrario el comando se interpreta mal).
    Luego NombreDeSuClase es el archivo .class que contiene la función main estática.

    Espero que haya podido ser útil o que esto ayude a otros.

    ¡Que tengan un buen día a todos!
    11