1
resposta

[Dúvida] Não consigo abrir a mensagem pelo prompt

Apesar de seguir os mesmo passos do professor, quando chego na pasta bin pelo prompt (C:\Users\aclop\eclipse-workspace\sintaxe_basica\bin>) o eclipse já cria um novo diretório chamado sintaxe_basica dentro da pasta bin. Nele contém ao Programa.class que de qualquer forma não roda, mesmo mostrando que o arquivo Programa.class estava no diretório. Ao digitar o comando: C:\Users\aclop\eclipse-workspace\sintaxe_basica\bin\sintaxe_basica>java Programa , aparece a seguinte mensagem: Error: Could not find or load main class Programa Caused by: java.lang.NoClassDefFoundError: sintaxe_basica/Programa (wrong name: Programa) . Segue imagem do ocorrido:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Minhas dúvidas são:

  1. Por que essa segunda pasta com o nome de sintaxe_basica é criada na bin?
  2. Como consigo fazer o Programa.class rodar no prompt?
1 resposta

Fala Ana, tudo certo?

Essa pasta é criada na bin por conta das configurações da IDE, que facilitam bastante a hora da execução dos nossos programas pois fazem muitas coisas debaixo dos panos para nos auxiliar, como todo o processo de compilação de código. A IDE, portanto, escolhe para onde esses arquivos .class vão após a compilação e faz bastante sentido estar na pasta bin, pois é uma abreviação pra binaries, ou arquivos binários!

Pelo processo ter sido feito através da IDE, no entanto, ele dificulta a vida de quem quer fazer manualmente, mas é possível através do passo a passo:

  • Entre na pasta onde está localizada sua classe (arquivo .java), com o seu prompt de comando.
  • Execute o comando javac <nomeDoArquivo>.java, no seu caso é javac Programa.java. Esse comando chama o utilitário compilador do JDK e gera o arquivo .class, que pode ser visto na pasta após a execução do comando anterior, a partir do comando dir.
  • Por fim, use o comando java Programa para executar o programa a partir da linha de comando. Aqui é importante lembrar que é apenas o nome do arquivo, sem a extensão .class, caso contrário vai haver um erro.

E prontinho, o programa vai ser rodado via linha de comando!

Estou à disposição em caso de dúvidas.

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!