No se pudo encontrar o cargar la clase principal de Java -jar
donde <opción> es una opción de línea de comandos (que comienza con un carácter “-“), <nombre de la clase> es un nombre de clase Java completamente calificado, y <arg> es un argumento de línea de comandos arbitrario que se pasa a su aplicación.
Cuando reciba el mensaje “No se pudo encontrar o cargar la clase principal…”, significa que el primer paso ha fallado. El comando java no fue capaz de encontrar la clase. Y de hecho, el “…” en el mensaje será el nombre de la clase completamente calificada que java está buscando.
La primera causa probable es que haya proporcionado un nombre de clase incorrecto. (O … el nombre de clase correcto, pero en la forma incorrecta.) Considerando el ejemplo anterior, aquí hay una variedad de formas incorrectas de especificar el nombre de la clase:
La segunda causa probable es que el nombre de la clase sea correcto, pero que el comando java no pueda encontrar la clase. Para entender esto, es necesario entender el concepto de “classpath”. Esto se explica bien en la documentación de Oracle:
Cuando se pone un directorio en el classpath, corresponde teóricamente a la raíz del espacio de nombres calificado. Las clases se localizan en la estructura de directorios bajo esa raíz, mapeando el nombre completamente calificado a un nombre de ruta. Así, por ejemplo, si “/usr/local/acme/classes” está en la ruta de clases, entonces cuando la JVM busca una clase llamada com.acme.example.Foon, buscará un archivo “.class” con esta ruta:
Java no puede encontrar la clase
Una vez que escribes un programa Java necesitas compilarlo usando el comando javac, este te muestra los errores de compilación ocurridos (si los hay).Una vez que los resuelves y compilas tu programa con éxito completamente, se genera un archivo ejecutable con el mismo nombre de tu clase en tu carpeta actual, con la extensión . Durante la ejecución, cuando la JVM no encuentra un archivo .class con el nombre especificado, se produce un error en tiempo de ejecución que dice “No se ha podido encontrar o cargar la clase principal” como -D:\Nejemplo>java Ejemplo
Causado por: java.lang.ClassNotFoundException: EjemploSoluciónPara evitar este error, es necesario especificar el nombre absoluto (incluyendo los paquetes) del archivo .class (sólo el nombre) que se encuentra en el directorio actual.A continuación se muestran los escenarios en los que podría producirse este error -Nombre de la clase incorrecto – Es posible que haya especificado el nombre de la clase incorrecto.Ejemplo de clase {
Causado por: java.lang.ClassNotFoundException: samp.ExampleSolución – En este escenario hemos mencionado el nombre del paquete equivocado Mientras se ejecuta necesitamos especificar el nombre correcto del paquete en el que existe el archivo .class como -D:\>javac -d . Ejemplo.java
Java no pudo encontrar o cargar la clase principal intellij
Cuando se escribe un programa/clase Java, lo primero que hay que hacer es compilarlo utilizando el comando javac como -javac [nombre de la clase].javaSi el programa se compila sin errores, se crea un archivo .class (código de bytes) con el nombre especificado. Entonces necesitas ejecutarlo usando el comando java (JVM) como -java [nombre de la clase]EjemploSupongamos que hemos creado una simple clase Calculadora que suma dos o, tres números en el archivo con nombre Calculadora.java en la ruta D:\sample como -public class Calculadora {
Si este programa se ejecuta sin errores de compilación, se generará un archivo .class con el nombre Calculator.class en la carpeta actual como -ExecutionThen, we can execute the generated byte code using the java command (JVM) as -java CalculatorOutput25
40Error “Could not found or load main class “Mientras se ejecuta, cuando la JVM no encuentra un archivo .class con el nombre especificado, se produce un error en tiempo de ejecución que dice “Could not found or load main class” como -D:\a muestra>java Calculator
Intellij no pudo encontrar o cargar la clase principal
Como muchos programadores de Java que obtienen “Error: Could not find or load main class Main” mientras se ejecuta el programa Java en Eclipse, yo también estaba recibiendo el mismo problema recientemente. El “Error: No se pudo encontrar o cargar la clase principal” me dejó perplejo incluso después de mis más de 10 años de experiencia con los errores y excepciones de Java. Cada vez que ejecuto mi aplicación Java, ya sea mediante las configuraciones de ejecución o haciendo clic con el botón derecho del ratón y ejecutándola como un programa Java, me aparece una molesta ventana emergente que se queja de que “no se pudo encontrar o cargar la clase principal, el programa saldrá”. He comprobado que el proyecto estaba compilando bien, puedo ver el archivo .class para la clase principal en el directorio bin de Eclipse, e incluso puedo ver el proyecto y la carpeta de salida añadido en el classpath de la configuración de ejecución, pero todavía, estoy recibiendo el “no pudo encontrar la clase principal, el programa saldrá”.
Me pasé dos horas probando todo lo que pude, llamando a mis compañeros de equipo para que me ayudaran (tener un par de ojos extra siempre ayuda en este tipo de situaciones), buscando en internet, y mucho ensayo y error, pero el error era persistente. La primera pista la obtuve al depurar mi programa Java. Depuré la aplicación Java en Eclipse haciendo clic con el botón derecho y eligiendo “Depurar como programa Java” y descubrí que estaba lanzando ClassNotFoundEexception para una clase de terceros.