Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
19
respostas

Dúvida no Ex. 2 da Aula 1 - A linguagem Java

Boa Noite Pessoal! Eu fiz todas as configurações sugeridas, consegui gerar o a classe mas não rodou quando chamei. O que faço? Alguém tem alguma sugestão? O Java e Javac estão com a mesma versão. Abraço

19 respostas

Olá Marco! O Seu problema é compilar? Ou so em rodar a aplicacao?

Olá Marco, você chegou a dar um CD no CMD?

Olá Romário, é só rodar.

Hum.. Como você está fazendo para rodar a aplicação?

Olá Rafael, como seria isso? Não coloquei CD não!

Você precisa abrir o prompt de comando, e fazer apontar para o diretório de onde está armazenado o seu arquivo .java.

Por exemplo, o aquivo .java está em d:\exercicios\xpto.java. quando abrir o prompt de comando tem que indicar o diretório:

c:\Users\Usuario> cd d:\exercicios\ d:\exercicios> javac xpto.java d:\exercicios>java xpto

CD é um comando do prompt que serve para você mudar o diretório onde você esta.

Exemplo: Quando você abre o prompt de comando ele ja vem algo parecido com isso:

C:\>

E o cursor piscando, isso significa que você está dentro deste diretorio utilizando o Prompt. Então você pode usar o comando CD para ir para qualquer outro diretório. Assim: cd romario

Dai ele iria abrir minha pasta romario que fica dentro do C:\ então o cursor iria mostrar agora da seguinte forma:

C:\romario>

Mas creio que se você conseguiu compilar com o javac não é necessário utilizar cd, pois o arquivo .java deve estar na mesma pasta onde você utilizou o javac. A menos que você mudou o arquivo de lugar.

Estou digitando no CMD: java MeuProgramaModificado e dá a informação que não foi possivel localizar nem carregar a classe principal MeuProgramaModificado.

Ponha o código da classe que você desenvolveu aqui, so pra eu dar uma olhada

Romário, eu consegui rodar com o javac, tanto que gerou um arquivo .class

Certo, mas ponha seu código aqui só para eu dar uma olhada.

Romário o codigo é esse:

class MeuProgramaModificado{
    public static void main(String[] args) {
        System.out.println("Estou na luta! \n Segundalinha");
    }

}

Salvei como MeuProgramaModificado.java Quando coloquei para compilar no javac coloquei a seguinte informação:

javac C:\Alura\MeuProgramaModificado.java

e foi gerado um MeuProgramaModificado.class na minha pasta.

Daí pra frente não consigo rodar o meu .class

solução!

Hum.. Então, veja só. O prompt funciona de acordo com a pasta onde ele se encontra. Perceba que você não está, com o prompt, na pasta onde estão seus arquivos.

Veja só:

  • Como eu disse anteriormente, quando eu abro o meu prompt, por exemplo, ele abre com o cursor no seguinte diretório:
C:\>

O que significa que para eu compilar e rodar meus arquivos eu tenho que por eles dentro de diretório C:\ . Ou outras duas opções seriam sai com o meu prompt do diretório C:\ e ir para o diretório onde encontra os arquivos, utilizando o comando CD como o Raphael falou.

Exemplo: Meus arquivos estão na pasta: C:\Alura\Java

Então com o meu prompt eu tenho que utilizar o comando CD e abrir essa pastas com ele. da seguinte forma:

cd Alura\Java

Dai o meu prompt de comando iria para a pasta C:\Alura\Java e lá eu poderia executar os comandos javac e java sem nenhum problema pois meus arquivos estariam na mesma pasta onde esta meu prompt.

A outra opção seria fazer como você fez. Você na hora de compilar por seu prompt estar dentro de outra pasta, você executou o comando javac informando o caminho onde se encontrava o seu arquivo.

Veja que para compilar você fez:

javac C:\Alura\MeuProgramaModificado.java

Você informou o caminho onde estava seu arquivo. E ele gerou o arquivo .class

Então para você executar você tem que fazer o mesmo, informar o caminho onde se encontra a sua classe. Fazendo o seguinte:

java C:\Alura\MeuProgramaModificado
  • Resumindo:

Lembre-se! O prompt so irá executar ações para determinado arquivo quando ele souber onde esse arquivo se encontra. Caso você não diga onde o arquivo está, ele irá presumir que está na pasta onde ele se encontra aberto e se ele não encontrar o arquivo ele não executará o comando.

Por isso quando você usava o comando java ele iria procurar o arquivo dentro da pasta que ele abriu e não encontrava, então ele dizia que não encontrava a classe.

Dessa forma ha duas opções: Abrir a pasta com o prompt ou informar onde está o arquivo na hora da execução do comando.

Espero ter ajudado! Bons Estudos!

Romário, Tentei usar o cd, infelizmente não funcionou, então resolvi continuar mostrando o caminho. Para o javac deu tudo certo, mas quando chamo o java, não roda, vem a mesma mensagem de que não é possível localizar nem carregar a classe principal.

Obrigado!!! Finalmente funcionou! Usei o CD.

Que bom! Qualquer dúvida só perguntar. Bons Estudos!

Acretido que vc salvou seu programa com nome diferente da classe. Tentou salvar como mesmo nome da classe e compilar e executar novamente?

Nao funciona o cd comigo e continuo com o mesmo problema. como nao consigo o cd, uso o caminho todo: "java c:\Java\OlaJava" . Apesar disso, nao funciona... apenas o "javac c:\Java\OlaJava.java". O que mais pode ser?