springboot returned intellij idea error encuentra encontrado clase cargado java

java - returned - No se pudo encontrar la clase principal HelloWorld



no se ha encontrado o cargado la clase principal intellij (10)

¡No estás configurando un classpath que incluye tu clase compilada! java no puede encontrar ninguna clase si no le dices dónde buscarla.

java -cp [compiler outpur dir] HelloWorld

Por cierto, no es necesario que establezca CLASSPATH como lo hizo.

Instalé Java 1.7.0 en la siguiente carpeta C:/Program Files/Java . Mi sistema operativo es Windows XP (Versión 2002) con Service Pack 3.

Las variables de entorno que establezco son:

  • CLASSPATH : C:/Program Files/Java/jdk1.7.0/jre/lib/rt.jar;

  • Ruta: C:/Program Files/Java/jdk1.7.0/bin;

  • JAVA_HOME : C:/Program Files/Java;

He presentado aquí los nombres de las clases que están en mi sistema.

Luego escribí un programa, HelloWorld.java:

import java.io.*; class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }

Cuando estoy compilando usando javac HelloWorld.java , está compilando bien.

Pero después de emitir java HelloWorld me encuentro con el siguiente error:

Error: Could not find main class HelloWorld Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:198) Caused by: java.lang.ClassNotFoundException: HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:299) at java.net.URLClassLoader$1.run(URLClassLoader.java:288) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:287) at java.lang.ClassLoader.loadClass(ClassLoader.java:422) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325) at java.lang.ClassLoader.loadClass(ClassLoader.java:355) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:195)

Después de buscar un poco, descubrí que puede haber algún problema en la variable de entorno. Traté de jugar con eso, pero no tuve suerte.

Incluso reinicié la máquina y luego traté de correr pero con la misma suerte.


Dígale dónde buscar su clase: está en ".", Que es el directorio actual:

java -classpath . HelloWorld

No es necesario establecer JAVA_HOME o CLASSPATH en este caso


Java no encuentra dónde se encuentra el archivo de clase compilado (HelloWorld.class). Utiliza los directorios y archivos JAR en la variable de entorno CLASSPATH para buscar si no se -cp -classpath opción -cp o -classpath al ejecutar java.exe.

No necesita rt.jar en CLASSPATH , solo era necesario para las versiones anteriores de Java. Puede dejarlo indefinido y se usará el directorio de trabajo actual, o simplemente lo agregará . (un solo punto), separado por '';'', a la variable CLASSPATH para indicar el directorio actual:

CLASSPATH: .;C:/.../some.jar

Alternativamente, puede usar la opción -cp o -classpath :

java -cp . HelloWorld

Y, como escribió Andreas, JAVA_HOME no es necesario para Java, solo para algunas herramientas de terceros como hormiga (pero debe apuntar a la ubicación correcta).


O bien desea agregar "." a su CLASSPATH para especificar el directorio actual, o agregarlo manualmente en el tiempo de ejecución de la manera sugerida por Unbeli.


Parece que había hecho toda la configuración correctamente, pero podría haber un área donde podría estar causando problemas

Comprueba el valor de tu variable "CLASSPATH" y asegúrate de que al final guardaste ;

Nota :; es para el separador de final . es para incluir la ruta existente al final


Simplemente elimine su "classpath" de su variable de entorno. Luego intente ejecutar:

java HelloWorld

Esto debería funcionar bien.


También me he enfrentado al mismo problema ...

En realidad, este problema se plantea debido a que los archivos .class su programa no se guardan en ese directorio. Elimine su CLASSPATH de su variable de entorno (no es necesario establecer classpath para programas Java simples) y vuelva a abrir el indicador de cmd, luego compile y ejecute.

Si observa cuidadosamente su archivo .class se guardará en la misma ubicación. (No soy un experto, también soy un programador básico si hay algún error en mis oraciones, por favor ignórelo :-))


Yo tuve el mismo problema. Quizás, el problema es que compiló y ejecutó la clase con diferentes versiones de Java.

Asegúrese de que la versión del compilador sea la misma que el comando "java" :

javac -version java -version

En Linux, use

sudo update-alternatives --config java

para cambiar la versión de Java.


poner .; en classpath value in beginning ... comenzará a funcionar ... sucede porque busca el archivo de clase en classpath que se menciona en la variable de ruta.


JAVA_HOME no es necesario si inicia java y javac desde la línea de comando. Pero JAVA_HOME debería apuntar al directorio jdk real, C:/Program Files/Java/jdk1.7.0 en su caso.

Nunca usaría la variable de entorno CLASSPATH fuera de los scripts de compilación, especialmente no definidos globalmente. La bandera -cp es mejor. Pero en su caso, ya que no necesita bibliotecas adicionales ( rt.jar no cuenta), no necesitará una declaración de ruta de clase. Un -cp faltante es equivalente a un -cp . y eso es lo que necesitas aquí)

La clase HelloWorld debe declararse como public . Esto en realidad puede ser la causa de tus problemas. (Estaba bastante seguro de que un archivo fuente necesita una clase pública ... ¿o era una clase pública como máximo ?)