20
respostas

Compila, porém não roda

class programa {
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }

}

Quando escrevo java programa, logo depois de compilar, aparece o seguinte erro:

Erro: Não foi possivel localizar nem carregar a classe principal programa

Tanto a classe quanto o arquivo possuem o mesmo nome.

O que faço?

20 respostas

Oi Natália, confere o diretório de execução.

Tenta ver se após você rodar o javac programa.java ele gerou um programa.class

Sim, o programa.class foi gerado.

Quando você digita

java programa

Vem essa mensagem certo?

Só confirma se você salvou o arquivo programa com o mesmo nome, exatamente o mesmo nome da classe, pois no caso você postou aqui a classe com o p em minúsculo e pode ter salvo o arquivo com o P maiúsculo no arquivo.

Sim, estão com o mesmo nome.

Oi Natália tenta assim

public class programa {
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }

}

Também não funcionou.

Oi Natália

Eu simulei o erro aqui da seguinte forma:

1 - Digitei a classe da mesma forma que você, e salvei em um arquivo programa.java

class programa{
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}

2 - Fui no terminal e conferi a versão do java que estou utilizando:

javac -version

retornou a versão javac 1.8.0_111, portanto o javac está tudo certo, e executei o comando:

javac programa.java

nesse caso o detalhe para a extensão do arquivo, foi gerado um outro arquivo programa.class.

Antes de dentar executar o programa, testei a versão do Java:

java -version

retornando

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

Ao executar:

java programa

Primeiramente sem a extensão o programa roda sem problemas, "printando" Hello, World! no terminal.

caso eu digite:

java programa.class

vem a seguinte mensagem Erro: Não foi possível localizar nem carregar a classe principal programa.class, e caso eu tente:

java Programa

Aparece a mensagem Erro: Não foi possível localizar nem carregar a classe principal Programa.

Tenta verificar alguns desses passos, talvez eles te ajudam a resolver o programa.

Fiz desta forma, porém não funcionei. Já escrevi a mesma classe com outros nomes (o arquivo com o mesmo nome) e também não funcionou.

Irei tentar reinstalar o Java.

Oi Natália, se você deu os comandos javac -version e java -version e eles deram um retorno está tudo certo.

Você poderia colocar o retorno dos comandos echo %JAVA_HOME% e echo %PATH%? Ou somente o final do segundo que foi onde você o configurou o Java

Bom dia Natália, não me parece problema de instalação não, vamos tentar mais uma vez:

Primeiramente, crie a classe com a primeira letra maiúscula, a convenção da linguagem não aconselha a utilizar com letra minúscula, ou seja, faça em um outro arquivo o seguinte código:

class Programa2 {
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}

Salve o arquivo como Programa2.java e execute o comando para compilar:

javac Programa2.java

Após isso, a forma correta de executar é com o comando abaixo:

java Programa2

Não coloque .class, não coloque .java. O comando java já irá utilizar o .class do aquivo por padrão. Lembrando que você tem que estar no diretório onde estão os arquivos para que funcione ok.

Seguindo estes passos deve funcionar, se não der, ai sim eu partiria para reinstalação e configuração, pois com toda certeza tem algo errado.

Oi Natália, uma coisa que eu esqueci de te perguntar é qual ferramenta você está utilizando para escrever seu código, seria interessante utilizar uma ferramenta como. o sublime ou o VS Code, o bloco de notas não é. uivo bacana para isso.

Joel, estava usando o Notepad++ ou CodeBlocks, já instalei o VS Code.

Fiz como o Emerson disse, mas ainda sim não funcionou.

Então, irei reinstalar e refazer a configuração.

Oi Natália, tudo bem, estranho esse problema persistir assim, espero que refazendo a configuração fique tudo certo, desculpa não ter ajudado a resolver o problema.

Estou com o mesmo problema. Alguém encontrou a solução?

Oi Aline, você chegou a dar uma conferida conforme fizemos nesse tópico do fórum? Confere o caminho da configuração do Java, muitos problemas acontece por configuração desse caminho.

Erro: Não foi possível localizar nem carregar a classe principal programa

Pessoal, este erro está relacionado ao fato de não haver classe pública no programa.

Se for feito assim, não tem porque não funcionar:

public class programa{
    public static void main(String[] args){
        System.out.println("Hello, World!");
    }
}

javac programa.java

java programa

Oi Emerson, em uma das respostas eu disse isso para a Natália, e ela relatou que mesmo assim não deu certo...

Não vejo porque não funcionaria. No mínimo, o erro seria outro.

Joel, conferi sim e as configurações do caminho do Java estavam de acordo com o que foi publicado aqui. Mas encontrei um artigo que ensinava um pouco diferente, alterei minhas configurações e funcionou ok.

Que bom que está rodando, agora pelo menos da para seguir o curso :)