Solución: no se pudo encontrar o cargar la clase principal

El error ‘No se pudo encontrar o cargar la clase principalocurre cuando se usa un comando java en el símbolo del sistema para iniciar un programa Java especificando el nombre de la clase en la terminal. La razón por la que esto ocurre principalmente es el error de registro del usuario al declarar la clase.

La clase principal no se pudo encontrar o cargar en la línea de comandos de Java
No se pudo encontrar o cargar la línea de comandos Java de la clase principal

Como ya se mencionó, este error en su mayoría no está relacionado con el sistema y, en algunos casos, el usuario comete un error como se muestra a continuación. Antes de continuar, supongamos que tiene un conocimiento básico del lenguaje de programación Java y cómo funciona.

¿Qué causa el error ‘No se pudo encontrar o cargar la clase principal’ en Java?

El mensaje ‘No se pudo encontrar o cargar la clase principal’ significa que el primer paso del motor Java que recibió la clase para su ejecución falló. El es comando java él no podría localizando la clase en el directorio correcto.

En algunos casos, tienes que ruta de archivo correcta y reemplazando la terminal de Java. Dado que está ejecutando el comando desde la terminal de línea de comandos, la computadora no sabe dónde se encuentra la clase o dónde está ubicada. En los IDE específicos, este no es el problema porque el IDE mantiene un puntero que apunta al directorio de trabajo actual.

¿Cuál es la sintaxis de ‘java ‘?

Antes de comenzar a solucionar el problema de por qué la terminal nos envía un error al intentar ejecutar, primero debemos mirar la sintaxis del comando. Si no está utilizando la sintaxis correcta, inevitablemente cometerá este error.

La sintaxis normal del comando es algo como esto:

 java [ <option> ... ] <class-name> [<argument> ...]

SEO

Un ejemplo de un pedido válido es:

java -Xmx100m com.acme.example.ListAppuals kevin arrows bart

El comando anterior ejecutará las siguientes operaciones del comando java:

  • Buscará una versión compilada de la clase ‘com.acme.example.ListAppuals‘.
  • Después de buscar, supondrá una carga para la clase.
  • Luego, una vez que se carga la clase, se buscará en la clase un modo de clave con una firma válida, moderadores y tipo de retorno. Una clase principal de muestra sería como:
public static void main(String[])
  • El método se llamará argumentos ‘kevin’, ‘flechas’ y ‘bart’ como alambre[].

Cómo solucionar ‘No se pudo encontrar o cargar la clase principal’

Solución 1: verifique el argumento del nombre de la clase

El error más común que cometen los usuarios es que proporcionan un nombre de clase incorrecto como argumento (o que un nombre de clase correcto es una forma incorrecta). Dado que estamos declarando parámetros en la línea de comando, existe la posibilidad de que ejecute el argumento del nombre de la clase en la forma incorrecta. Aquí enumeraremos todos los posibles escenarios en los que puede cometer un error.

  • Escribe un nombre de clase simple. Si declara la clase en un paquete como ‘com.acme.example’, necesita el nombre completo de la clase el paquete en el comando de Java está incluido.
java com.acme.example.ListAppuals

en vez de

java ListAppuals
  • Debieras confirmar el nombre de la clase en lugar de declarar un nombre de archivo o un nombre de ruta. Java no obtiene la clase si confirma la ruta / nombre de archivo para ella. Incorrecto Las entradas incluyen:
java ListAppuals.class

java com/acme/example/ListAppuals.class
  • Caja que debe tenerse en cuenta. Los comandos de Java distinguen entre mayúsculas y minúsculas y si comete un error de una letra, no podrá cargar la clase principal. Ejemplo de errores equivocados Son:
java com.acme.example.listappuals
  • usted no debería declarar nombre del archivo de origen. Como ya se mencionó, solo necesita declarar la clase en el formato de nombre de clase completo correcto. Un ejemplo de error es:
java ListAppuals.java
  • Este error también ocurrirá si realiza una error de tipeo o olvide escribir el nombre de la clase completamente.

Si cometió algún error descuidado al confirmar el nombre de la clase, asegúrese de solucionarlo y luego intente iniciar el programa.

Solución 2: verifique la ruta de clases

Si ha confirmado el nombre de la clase correctamente pero se muestra el error, existe la posibilidad de que un comando java no pueda encontrar el nombre de la clase especificada en la ruta. La ruta de clases es una ruta en la que el tiempo de ejecución de Java busca archivos de recursos y clases. Puede establecer fácilmente la ruta de clases utilizando dos comandos diferentes, como se muestra a continuación:

C:> sdkTool -classpath classpath1;classpath2...

C:> set CLASSPATH=classpath1;classpath2...

Para una mejor comprensión de la ruta de clases, debe consultar los siguientes documentos.

Documentación de comandos de Java

Establecer una ruta de clases

Solución 3: consulte el directorio

Cuando declara un directorio como una ruta de clases, siempre corresponderá a la raíz del espacio de nombres. Por ejemplo, si “/ usr / local / acme / classes” está en la ruta de clases, Java buscará la clase “com.acme.example.Appuals”. Buscará una clase con el siguiente nombre de ruta:

/usr/local/acme/classes/com/acme/example/Appuals.class

Entonces, básicamente, si pones la siguiente dirección en la ruta de clases, Java no podrá encontrar la clase:

/usr/local/acme/classes/com/acme/example

También deberías comprobar el tuyo subdirectorio y compruebe si es compatible con el FQN. Si el FQN de las clases es «com.acme.example.Appuals», Java buscará «Appuals.class» en el directorio «com / acme / example».

Para darle un ejemplo, consideramos el siguiente escenario:

  • La clase que desea ejecutar es: com.acme.example.Appuals
  • El es ruta de archivo completa es: /usr/local/acme/classes/com/acme/example/Appuals.class
  • El es directorio de trabajo actual es: / usr / local / acme / classes / com / acme / example /

Entonces estarían los siguientes escenarios:

# wrong, FQN is needed

java Appuals

# wrong, there is no `com/acme/example` folder in the current working directory

java com.acme.example.Appuals

# wrong, similar to above scenario

java -classpath . com.acme.example.Appuals

# OK ; a relative classpath is set

java -classpath ../../.. com.acme.example.Appuals

# OK; an absolute classpath is set

java -classpath /usr/local/acme/classes com.acme.example.Appuals

Nota: Todas las demás clases (que no pertenecen al sistema) requeridas por sus aplicaciones deben incluirse en la ruta de clases.

Solución 4: consulte el paquete de clases

Si todas las soluciones anteriores son ciertas para usted, debe asegurarse de que su código fuente esté ubicado en la carpeta correcta. También el paquete. Si ejecuta su código con un IDE, probablemente le alertará sobre el problema. Sin embargo, en nuestro caso, dado que estamos ejecutando el comando inmediatamente, el error no se notará y encontrará el error de clase en cuestión.

Deja un comentario