É muito comum enfrentar erros e exceções na linguagem de programação Java. Mas alguns dos erros mais populares e comuns são frequentemente enfrentados por programadores novos em programação. Entre esses erros, não foi possível encontrar ou carregar a classe principal em Java, é um deles que ocorre normalmente. O erro indica que o comando java fracassado para encontrar ou carregar a classe principal . Ocorre quando tentamos executar um programa. Quando o erro ocorre, a JVM mostra a seguinte mensagem de erro no console:
Error: Could not find or load main class ClassName
O erro é gerado principalmente quando especificamos incorretamente o nome da classe em tempo de execução do programa.
Razões para ocorrer erro
O erro é gerado porque o JVM falha ao carregar a classe principal ou o nome do pacote. Existem alguns outros motivos que geram o mesmo erro, como segue:
- A classe foi declarada no pacote errado.
- Dependências ausentes no CLASSPATH.
- O caminho do subdiretório não corresponde ao nome totalmente qualificado.
- O diretório errado está no CLASSPATH.
- O CLASSPATH do aplicativo está especificado incorretamente.
- Também ocorre quando cometemos um erro com o argumento do nome da classe.
Solução para o erro
Para evitar ou resolver o erro, precisamos especificar o nome absoluto do pacote ou nome da classe.
Sem pacote
A classe principal é uma classe na qual o método main() é definido. Vamos criar um programa que gere e exiba um erro no console.
DemoClass.java
public class DemoClass { public static void main(String[] args) { System.out.print('Enter a string: '); //using console to input data from user String name = System.console().readLine(); System.out.println('You have entered: '+name); } }
Saída:
Vemos que o programa acima é compilado e executado com sucesso. Vamos gerar o erro que não foi possível encontrar ou carregar a classe principal no programa acima. Para gerar e exibir o erro, temos com erros ortográficos o nome da classe enquanto digita o Java comando java DemoClas .
Também ocorre quando especificamos o .aula extensão no final do nome da classe.
java DemoClass.class
Para evitar o erro, não escreva .aula extensão no final do nome da classe ao usar o Java comando.
java DemoClass
O erro também ocorre quando não colocamos a classe na pasta correta. Na imagem a seguir, não estamos dentro do demonstração pasta onde a classe está localizada. Significa o DemoClass.class arquivo deve estar dentro do diretório C:demonstração .
Com pacote
No programa acima, vamos criar um pacote chamado com.javatpoint . Ou seja, ao compilar o seguinte programa Java o arquivo .class será gerado dentro do C:democomjavatpointDemoClass.class .
DemoClass.java
package com.javatpoint; public class DemoClass { public static void main(String[] args) { System.out.print('Enter a string: '); //reading a string from the user String name = System.console().readLine(); System.out.println('You have entered: '+name); } }
Saída:
Lembre-se que se a classe estiver dentro de um pacote, devemos usar o nome completo da classe, incluindo o nome do pacote, no comando java.