Problemas com a JVM. [RESOLVDO]

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

eu tb estou com esse pbm

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.