Boa noite.
Estudei java a um tempo mas parei de estudar e agora resolvi recomeçar tudo do zero. Instalei o meu JDK, consigo compilar o meu código para gerar o bytecode java, o .class, mas não consigo executa-lo, ao digitar o comando java c:\java\MeuPrograma.class no prompt é apresentado o seguinte erro:
Erro: Nao foi possivel localizar nem carregar a classe principal c:\java\MeuPrograma.class
Fiz um código extremamente simples, um ola mundo, somente para relembrar mesmo o funcionamento:
class MeuPrograma {
public static void main(String[] args) {
System.out.println("Minha primeira aplicacao Java!");
}
}
Uso o Win 7 e configurei o JDK no Win 7 da seguinte maneira:
Meu Computador > Propriedades > Configurações avançadas do sistema > Variaveis ambiente > criei a variável ClassPath, nesta variavel ambiente inseri o seguinte valor: C:\Program Files (x86)\Java\jdk1.7.0_05\src.zip;C:\Program Files (x86)\Java\jdk1.7.0_05\lib\tools.jar;.
Logo após inclui o valor ;C:\Program Files (x86)\Java\jdk1.7.0_05\bin;. na variável Path.
Alguem sabe o que devo fazer ou o que estou fazendo de errado?
Obrigado.
1 curtida
amigo pra ver se o jre esta instalado teste
java -version
se aparecer algo blz…
depois apenas execute cmd> java MeuPrograna sem o .class
Para executar um programa você deve passar o nome da classe para o comando java, e não o nome do arquivo. Por exemplo, veja a estrutura e o comando abaixo:
Hello
|- bin
|- src
|- com
|- hello
|- Hello.java
Hello$ java -d bin src/*
vai gerar a seguinte estrutura:
Hello
|- bin
|- com
|- hello
|- Hello.class
Hello$ java -d bin src/*
Para executar, a partir do diretório Hello você deve digitar:
Hello$ java -cp bin com.hello.Hello
rmendes08, não entendi, tentei executar o comando e ainda não consegui.
Meu JDK está instalado no local: C:\Program Files (x86)\Java\jdk1.7.0_05\bin
Meu código está no local: c:\Java
O que devo digitar no prompt para conseguir executar o código?
Como está minha configuração:
JAVA_HOME:
C:\Program Files\Java\jdk1.7.0
PATH:
.;%JAVA_HOME%
Tente essa configuração e reinicie o PC.
Configurei as variáveis ambientes da seguinte maneira:
CLASSPATH: C:\Program Files (x86)\Java\jdk1.7.0_05\lib\tools.jar
Obs: Criei esta variavel de ambiente, só existe este caminho nela.
PATH: C:\Program Files (x86)\Java\jdk1.7.0_05\bin;
Obs: Coloquei o caminho no inicio da variável e separei com ;
JAVA_HOME: C:\Program Files (x86)\Java\jdk1.7.0_05
Obs: Criei esta variável de ambiente, só existe este caminho nela.
Creio que o problema não está na configuração do JDK porque com o javac o programa é compilado e gera o .class, só não consigo executar o programa pelo prompt usando o comando java, se o JDK estivesse configurado errado não executaria nem o javac, certo? Digitando java -version tb é exibida a versão do java tudo certinho, mas não consigo executar o programa para exibir a mensagem na tela.
Estou digitando: java c:\Java\MeuPrograma.java para executar e continua aparecendo o mesmo erro.
Desinstalei o JDK e instalei novamente, reconfigurei todas as variáveis de ambiente e continua o mesmo erro.
Obrigado.
[quote=JorjaoCorreia]Configurei as variáveis ambientes da seguinte maneira:
CLASSPATH: C:\Program Files (x86)\Java\jdk1.7.0_05\lib\tools.jar
Obs: Criei esta variavel de ambiente, só existe este caminho nela.
PATH: C:\Program Files (x86)\Java\jdk1.7.0_05\bin;
Obs: Coloquei o caminho no inicio da variável e separei com ;
JAVA_HOME: C:\Program Files (x86)\Java\jdk1.7.0_05
Obs: Criei esta variável de ambiente, só existe este caminho nela.
Creio que o problema não está na configuração do JDK porque com o javac o programa é compilado e gera o .class, só não consigo executar o programa pelo prompt usando o comando java, se o JDK estivesse configurado errado não executaria nem o javac, certo? Digitando java -version tb é exibida a versão do java tudo certinho, mas não consigo executar o programa para exibir a mensagem na tela.
Estou digitando: java c:\Java\MeuPrograma.java para executar e continua aparecendo o mesmo erro.
Desinstalei o JDK e instalei novamente, reconfigurei todas as variáveis de ambiente e continua o mesmo erro.
Obrigado.[/quote]
Você deve compilar usando o javac especificando assim:
javac MinhaClass.java
Para executar sua classe, faça assim:
java MinhaClass
Perceba que para executar a classe, você deve passar o nome da classe, como foi dito acima, ou seja, não ponha o “.class” no fim na hora de executar.
matheuslmota, mesmo erro cara, executei assim:
java MeuPrograma
erro: Nao foi possivel localizar e nem carregar a classe principal MeuPrograma
Galera, consegui rodar entrando dentro da pasta onde está o .class e o .java pelo prompt e rodando assim: java -cp . MeuPrograma
Obrigado.
1 curtida
Jorjao Correia como você consegui descobrir que tinha que colocar o comando java -cp . NomedoAplicativo
Hoje estava tentando fazer da outra manei
//compila
javac NomedoAplicativo.java
//executa
java NomedoAplicativo
eu já consegui saber só queria entender porque em alguns micros funciona e em outros não
[quote]
Jorjao Correia como você consegui descobrir que tinha que colocar o comando java -cp . NomedoAplicativo
Hoje estava tentando fazer da outra manei
//compila
javac NomedoAplicativo.java
//executa
java NomedoAplicativo
eu já consegui saber só queria entender porque em alguns micros funciona e em outros não[/quote]
brunosofolia Eu estou iniciando os jobs com Java, mas (falando de Windows) pelo que eu entendi depende da elevação dada para a execução do arquivo. Posso estar equivocado em algum ponto (se estiver fiquem a vontade para me corrigir, a ideia é aprender), mas nos testes que fiz, ao dar elevação para camada de Administrador de Sistema, o comando Java entende de forma implícita os caminhos até as bibliotecas e classes adicionais que o programa pode exigir ao ser compilado/executado.
Essa elevação se torna obrigatória justamente por ter definido as variáveis de ambiente do Java na camada de Sistema. Se criarmos essas mesmas variáveis na camada de usuário, passa a ser dito ao sistema que quando um usuário que tenha permissão para execução de arquivo solicitar fizer a chamada do comando java ele buscará o caminho das libs especificados no ClASSPATH de forma implicita, deixando de ser obrigatório o parâmetro -cp ou -classpath
Cara, te agradeço imensameeeeeeente. to tentando há uma vida configurar as variáveis de ambiente, lendo fórum e vendo as outras opções, mas acho que no Windows 10, com o Java 10 só me funcionou assim, com este comando que vc informou.