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] Erro de version...

Olá!

Rodei o comando java -jar , no caminho coloquei o caminho dele completo e estou tendo o seguinte log...

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

19 respostas

Alguém pra me auxiliar com esse log?

Olá, João!

Pelo log que você compartilhou, o erro java.lang.UnsupportedClassVersionError indica que a versão do Java Runtime que você está usando para executar o arquivo .jar é mais antiga do que a versão com a qual o arquivo foi compilado.

A mensagem "class file version 61.0, this version of the Java Runtime only recognizes class file versions up to 52.0" informa que o .jar foi compilado com o Java 17 (versão 61.0), mas você está tentando executá-lo com uma versão do Java mais antiga, provavelmente Java 8 (versão 52.0).

Para resolver esse problema, você precisa instalar o Java 17 no seu ambiente. Para verificar a versão do Java no terminal:

java -version

Espero ter ajudado e bons estudos!

Minha versão é essa Rodrigo...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Teria algum link aqui da Alura pra instalação do java? Não me recordo se tem...

No aguardo

Precisa atualizar para o Java 17

No primeiro curso de Java fala da instalação: https://cursos.alura.com.br/course/java-criando-primeira-aplicacao

Acabei de instalar e configurar a variável de ambiente no windows. Mas o IntelliJ ainda está reconhecendo somente a versão enviada acima. Como faço para desinstalar ela e instalar a 17?

Ou será que se reiniciar o notebook ele já reconhece a 17?

No aguardo...

Se você estiver rodando o comando do terminal dentro do IntelliJ, precisa reiniciar o IntelliJ para ele detectar a mudança nas variáveis de ambiente.

Eu reiniciei mas ele continua mostrando conforme o print que mandei da versão...

Ele não atualizou e não sei porque...

Veja se o Java 17 está configurado no projeto no IntelliJ.

Botão direito -> Open Module Settings (nos menus Module e Project)

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

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

Atualizei conforme indicado nos prints. A versão que baixei. E mesmo assim continuo com erro de acesso ao arquivo...

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

A mensagem agora é outra. Erro de acesso. Não sei porque...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Unable to acess jarfile. Coloquei o path certinho do arquivo....

Agora o erro foi no comando. Como sua pasta tem espaço em branco no nome, precisa colocar entre aspas.

java -jar "C:\Users\josh_\Desktop\Boas Praticas em Java\3149-boas-praticas-java-projeto_inicial\api.jar"

Agora coloquei as aspas e voltou a dar o mesmo problema de versionamento...não tô entendendo porque. Instalei o 17, atualizei o project e module para a versão 17 conforme mostrei no print...mas ainda está dando o mesmo erro...

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

Deve estar constando ainda a versão 8 no seu terminal. Você pode rodar assim então:

C:\Program Files\Java\jdk-17\bin\java -jar "C:\Users\josh_\Desktop\Boas Praticas em Java\3149-boas-praticas-java-projeto_inicial\api.jar"

Lembrando de alterar o caminho para o diretório correto de instalação do Java 17 no seu computador.

Oi Rodrigo! Agora com esse caminho do diretório especifico do java 17(copiei e colei o diretório correto que está no arquivo bin do java 17) , ele não reconhece o comando...conforme o print.

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

Aspas duplas porque tem espaço em branco no caminho:

"C:\Program Files\Java\jdk-17\bin\java" -jar "C:\Users\josh_\Desktop\Boas Praticas em Java\3149-boas-praticas-java-projeto_inicial\api.jar"

Se não funcionar, rode o comando de dentro da pasta bin do java:

cd "C:\Program Files\Java\jdk-17\bin"
java -jar "C:\Users\josh_\Desktop\Boas Praticas em Java\3149-boas-praticas-java-projeto_inicial\api.jar"

Entrei na pasta com o comando cd pois o caminho entre aspas duplas não estava indo...

Agora dentro da pasta bin e rodando o comando java -jar "caminho-completo-do-arquivo" está dando o mesmo erro de versão de novo...

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

solução!

Ah sim, esqueci desse detalhe, se digitar apenas java, ele vai pegar da variável de ambiente que está apontando para o Java 8 e nao o java da pasta bin.

Tente assim então:

java.exe -jar "C:\Users\josh_\Desktop\Boas Praticas em Java\3149-boas-praticas-java-projeto_inicial\api.jar"

Se não der certo, tente criar um alias temporário no powershell:

Set-Alias -Name java17 -Value "C:\Program Files\Java\jdk-17\bin\java.exe"
java17 -jar "C:\Users\josh_\Desktop\Boas Praticas em Java\3149-boas-praticas-java-projeto_inicial\api.jar"

Tentei sua primeira instrução e não foi. Ai criei o Alias e deu certinho! Pra rodar qualquer .jar agora em outras aplicações vou ter que criar um alias? Tenho que estar na pasta bin com o comando cd sempre? Ou será que executando fora dela roda? Só mais essa dúvida rsrsrs

Boa.

Com o alias não precisa acessar a pasta do java 17 não. Pode rodar o comando de qualquer diretório no terminal. Porém, esse alias é temporário, ou seja, quando você fechar o power shell e abrir de novo ele não vai mais existir. Dá uma pesquisada que deve ter como configurar alias definitivo no power shell do windows.

Obrigado Rodrigo pelo suporte!

Vou pesquisar.