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



Pruebe Nuestro Instrumento Para Eliminar Los Problemas

El error ' No se pudo encontrar o cargar la clase principal 'Ocurre 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 sucede se debe principalmente al error de programación del usuario al declarar la clase.



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

No se pudo encontrar o cargar la clase principal: línea de comandos de Java



Como se mencionó anteriormente, este error en su mayoría no está relacionado con el sistema y el usuario comete un error en varios escenarios como se muestra a continuación. Antes de seguir adelante, asumimos 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 busca la clase para su ejecución ha fallado. los comando java no fue capaz de localizar la clase en el directorio correcto.

En algunos casos, debe agregar el ruta de archivo correcta y apunte el terminal Java a la ubicación correcta. 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, ya que el IDE mantiene un puntero apuntando hacia el directorio de trabajo actual.

¿Qué es la sintaxis 'java'?

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



La sintaxis normal del comando es algo como esto:

java [...] [...]

Aquí hay una opción de línea de comando, es un nombre de clase Java totalmente calificado y es un argumento de línea de comando que se pasa a su aplicación cuando se compila todo el paquete.

Un ejemplo de un comando válido es:

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

El comando anterior hará que el comando java ejecute las siguientes operaciones:

  • Buscará una versión compilada de la clase ' com.acme.example.ListAppuals ’.
  • Después de buscar, cargará la clase.
  • A continuación, cuando se carga la clase, se buscará en la clase un método 'principal' con una firma válida, modificadores y tipo de retorno. Una clase principal de muestra sería algo como:
public static void main (String [])
  • El método se llamará con los argumentos 'kevin', 'flechas' y 'bart' como cadena [].

Cómo corregir 'No se pudo encontrar o cargar la clase principal'

Solución 1: Comprobación del 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 un nombre de clase correcto es una forma incorrecta). Dado que estamos declarando parámetros en la línea de comando, es muy probable que pase el argumento del nombre de la clase en una forma incorrecta. Aquí enumeraremos todos los escenarios posibles en los que puede cometer un error.

  • Escribiendo un nombre de clase simple . Si declara la clase en un paquete como 'com.acme.example', debe utilizar la nombre de clase completo incluido el paquete en el comando Java.
java com.acme.example.ListAppuals

en vez de

Java ListAppuals
  • Debieras declarar un nombre de clase en lugar de declarar un nombre de archivo o una ruta. Java no recupera la clase si declara un nombre de ruta / nombre de archivo para ella. Incorrecto las entradas incluyen lo siguiente:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Caja debe tenerse en cuenta. Los comandos de Java distinguen entre mayúsculas y minúsculas y si comete un error de una sola letra, no podrá cargar la clase principal. Un ejemplo de errores incorrectos son:
java com.acme.example.listappuals
  • usted no debería declare a nombre de archivo de origen . Como se mencionó anteriormente, solo necesita declarar la clase en el formato de nombre de clase completo correcto. Ejemplo de error es:
Java ListAppuals.java
  • Este error también ocurrirá si realiza una error de mecanografía o olvídate de escribir el nombre de la clase por completo .

Si ha cometido algún error descuidado al declarar el nombre de la clase, asegúrese de solucionarlo y luego intente iniciar el programa.

Solución 2: comprobar classpath

Si ha declarado el nombre de clase correctamente pero aún se muestra el error, es probable que el comando java no pueda encontrar el nombre de clase especificado 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 configurar fácilmente la ruta de clases utilizando dos comandos diferentes, como se muestra a continuación:

C:> sdkTool -classpath classpath1; classpath2 ... C:> establecer CLASSPATH = classpath1; classpath2 ...

Para obtener más información sobre la ruta de clases, debe consultar los siguientes documentos.

Documentación de comandos de Java

Configuración de classpath

Solución 3: directorio de comprobación

Cuando declaras un directorio como classpath, 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á una clase 'com.acme.example.Appuals'. Buscará una clase con el siguiente nombre de ruta:

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

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

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

También debe comprobar su subdirectorio y vea si coincide con el FQN. Si su FQN de clases es 'com.acme.example.Appuals', Java buscará una 'Appuals.class' en el directorio 'com / acme / example'.

Para darle un ejemplo, supongamos el siguiente escenario:

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

Entonces se mantendrían los siguientes escenarios:

# incorrecto, se necesita FQN java Appuals # incorrecto, no hay carpeta `com / acme / example` en el directorio de trabajo actual java com.acme.example.Appuals # incorrecto, similar al escenario anterior java -classpath. com.acme.example.Appuals # OK; se establece una ruta de clase relativa java -classpath ../../ .. com.acme.example.Appuals # OK; se establece una ruta de clase absoluta java -classpath / usr / local / acme / classes com.acme.example.Appuals

Nota: El classpath también debe incluir todas las demás clases (que no son del sistema) que sus aplicaciones necesitan.

Solución 4: Comprobación del paquete de clases

Si todas las soluciones anteriores son válidas en su caso, debe asegurarse de que su código fuente esté ubicado en la carpeta correcta. Además, ha declarado correctamente el paquete . Si ejecuta su código con un IDE, probablemente le informará sobre el problema. Sin embargo, en nuestro caso, dado que lo estamos ejecutando en el símbolo del sistema, el error pasará desapercibido y obtendrá el error de clase en discusión.

4 minutos de lectura