¿No se pudo encontrar o cargar Java de clase principal? ¡Aquí le mostramos cómo solucionarlo!

¿No se pudo encontrar o cargar Java de clase principal? ¡Aquí le mostramos cómo solucionarlo!

Si sigue recibiendo el error de clase principal no encontrada en su proyecto Java sin razón aparente, no se preocupe, no está solo.



Como uno de los errores más imprevisibles y espontáneos, gracias a la tendencia de JVM (Java Virtual Machine) de ceñirse a una ruta de clases predeterminada, el problema de 'clase principal no encontrada' es algo que persigue tanto a los aficionados como a los profesionales.

Pero este problema es menos intimidante de lo que parece. Siga leyendo para descubrir cómo puede deshacerse de este error de una vez por todas.





¿Por qué no se encontró la clase principal?

Antes de intentar comprender cómo y por qué JVM no pudo encontrar la clase principal, debemos comprender el concepto de Classpath en Java.

¿Qué es Classpath?

La ruta de clases es la ruta del archivo en la que el entorno de ejecución de Java busca clases y otros archivos de recursos. Se puede configurar utilizando el -classpath opción al ejecutar un programa o al configurar el sistema CLASSPATH Variable ambiental.



Como sugiere el nombre, es simplemente una ruta de archivo donde el .clase Los archivos se pueden encontrar en un paquete o directorio JDK.

Cuando la JVM no puede localizar la clase principal, a menudo es porque está buscando la correspondiente .clase archivos en la ruta de clase incorrecta. Por supuesto, la forma de rectificar este problema es especificar manualmente la ruta de clases utilizando paquetes o especificando la ruta de clases.

En este punto, si desea refrescar su memoria de las clases de Java, consulte nuestra guía para creando clases en Java .

cómo liberar memoria en Windows 10

Usar paquetes

Creemos una clase llamada Prueba . Colóquelo en un paquete llamado testPackage . Los paquetes se utilizan en Java para agrupar clases similares o proporcionar un espacio de nombres único para las clases.

En este sencillo ejemplo, el uso de un paquete le ayudará a visualizar cómo funciona la ruta de clases de Java. En su aplicación de administrador de archivos, un paquete se representa como una carpeta independiente.

|_+_|

Ahora, abra una nueva terminal y asegúrese de que su directorio de trabajo sea el mismo que el que contiene la carpeta del paquete. Puede cambiar el directorio de trabajo utilizando el cd comando en cualquier sistema operativo.

Compilar Test.java ejecutando el siguiente comando:

|_+_|

Esto guardará el archivo binario compilado (el archivo .class) en testPackage.

Para ejecutar la clase compilada, debe escribir el nombre de la clase completamente calificado en la línea de comando. El nombre completo de una clase Java se refiere a su nombre con el prefijo del nombre del paquete. En este caso, debería verse así:

|_+_|

Esta forma de llamar a los archivos de clase también asegura que pueda llamar a ejecutables de diferentes paquetes desde el mismo directorio de trabajo. Todo lo que tiene que hacer es modificar el nombre de la clase completamente calificado.

En implementaciones más avanzadas, le recomendamos que cree subcarpetas separadas para sus clases y archivos fuente para administrar mejor los archivos dentro del paquete.

Especificación manual de classpath

La forma recomendada de administrar sus archivos java es crear directorios separados para los archivos de origen y las clases. Si está trabajando en un proyecto, es probable que ya lo esté haciendo.

Convencionalmente, el directorio con los archivos de origen se etiqueta como src y el que tiene archivos .class está etiquetado como clases. Esta es también una forma de garantizar que la probabilidad de que JVM no encuentre la clase principal se reduzca significativamente, debido al directorio estructurado correctamente.

Si usamos este método, así es como se verá la estructura del directorio antes de compilar:

cómo cambiar el icono de la aplicación de Windows 10
|_+_|

Cada sangría en la ilustración anterior corresponde a un nivel de la jerarquía de archivos que debe seguir su proyecto.

Para compilar esto, asegúrese de que su directorio de trabajo sea myFolder. Ahora, escriba el siguiente comando:

|_+_|

los .clase El ejecutable debe guardarse en myFolder / classes / testPackage . En consecuencia, la estructura del directorio de archivos se parece a esto: package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

|_+_|

Para ejecutar el .clase , ejecute el comando Java con el nombre de clase completo y especifique la ruta de clase local. Cada ruta se declara relativa al directorio de trabajo, que en este caso es myFolder.

|_+_|

Ejecutar este comando debería darle el resultado deseado. Pero, ¿por qué es necesaria tanta reorganización para solucionar un simple error?

La importancia de organizar archivos en Java

La misma razón por la que se lanza 'No se pudo encontrar o cargar la clase principal' es porque JVM no pudo encontrar dónde .clase se estaban almacenando archivos.

La forma más fácil de resolver este error es controlar dónde se almacenan los archivos .class y decirle explícitamente a JVM que busque allí. Esto es posible organizando sus archivos fuente y ejecutables por separado y controlando todo desde un directorio de trabajo.

A medida que comienza a agregar construcciones como herencia para su proyecto, la complejidad del sistema de archivos aumentará considerablemente. En tales proyectos o incluso en aquellos en los que se requiere el uso de archivos JAR o bibliotecas personalizadas, la simple práctica de segregar y administrar archivos puede ahorrarle innumerables horas de resolución de problemas y depuración.

Para leer más sobre cómo funciona classpath en Java y las numerosas cosas que puede controlar cuando se trata de ejecutar su código, también puede echar un vistazo a Oracle referencia detallada y fácil de usar .

Cuota Cuota Pío Correo electrónico Los 10 mejores proyectos para principiantes para nuevos programadores

¿Quieres aprender a programar pero no sabes por dónde empezar? Estos proyectos y tutoriales de programación para principiantes le ayudarán a empezar.

iphone 6 congelado en el logo de apple
Leer siguiente Temas relacionados
  • Programación
  • Java
Sobre el Autor Yash Chellani(10 artículos publicados)

Yash es un aspirante a estudiante de ciencias de la computación al que le encanta construir cosas y escribir sobre todo lo relacionado con la tecnología. En su tiempo libre, le gusta jugar al Squash, leer una copia del último Murakami y cazar dragones en Skyrim.

Más de Yash Chellani

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse