A classe foi compilada por uma versão mais recente do ambiente Java

87

Ao executar o script selenium, estou recebendo a seguinte mensagem de erro no console do Eclipse:

A classe foi compilada por uma versão mais recente do Java Environment (versão do arquivo de classe 53.0), esta versão do Java Runtime só reconhece versões de arquivo de classe até 52.0.


  • Versão Java: 8
  • IDE: Eclipse Oxygen
  • Versão do Firefox: 46
user5218071
fonte
6
class file version 53 = Java 9. Seu Java 8 JVM não pode executar código Java 9.
howlger

Respostas:

110

Esta é apenas uma incompatibilidade de versão. Você compilou seu código usando java versão 9 e seu JRE atual é a versão 8. Tente atualizar seu JRE para 9.

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
Nithin
fonte
24
aconselhar sobre a escolha lógica pode não ser uma boa solução ... e se o projeto for executado com jre-8 em primeiro lugar e alguém acidentalmente compilou algum módulo contra 9?
Eugene
Acredito que a atualização ainda não causará problemas, pois não haverá problemas de compatibilidade com versões anteriores. E era lógico, pois acredito que o compilador foi atualizado para a versão mais recente.
Nithin
9
você está pensando em termos de um pequeno projeto sandbox; para projetos empresariais - essa mudança nunca é fácil. Por exemplo, alguns bugs foram corrigidos no 8 para os genéricos que você estava contando com os efeitos colaterais deles no 7; ou a HashMapordem mudou de 7 para 8 ... etc. Eu enfrentei isso. Simplesmente dizendo - mudar para 9 é uma boa opção, mas nunca uma opção simples e rápida
Eugene
se você está afirmando em termos de níveis de projeto corporativo, sim, você está correto e eu concordo totalmente com esse ponto. Atualizar / rebaixar nunca é a opção mais viável em tais cenários.
Nithin
@nithinpankaj Essencialmente, sempre que tentei usar o Java 9, algum novo erro foi lançado. Sem nenhuma razão para atualizar, parei de tentar e tenho uma opinião bastante ruim sobre o Java 9.
Erhannis,
37

IDE: Eclipse Oxygen.3

Para corrigir temporariamente o problema, faça o seguinte:

Project menu> Properties> Java Compiler> Compiler compliance level>1.8

Uma correção permanente provavelmente envolve a instalação do JDK 9.

FYI 1.8 é como o Java 8 é chamado.

Barra Lateral

Recentemente, retornei ao Java após uma incursão no C # (uma lufada de ar fresco) e instalei o Eclipse Oxygen em um sistema limpo que nunca teve o Java instalado antes. Este padrão é tudo com uma nova instalação do Eclipse Oxygen, mas de alguma forma ou outro Eclipse não consegue obter seus próprios parâmetros para corresponder ao jdk que está instalado. Este é o segundo projeto que eu criei e a segunda vez que tive essa dor de cabeça. Hora de voltar ao C #?

Questão Relacionada

foi compilado por uma versão mais recente do Java Runtime (arquivo de classe versão 53.0)

Eric D
fonte
interessante. Então, isso significa que o bytecode NÃO é compatível com versões futuras?
toto '30 de
10

Você pode tentar desta forma

javac --release 8 yourClass.java
Krishna Santosh Nidri
fonte
6

53significa java-9, então significa que qualquer classe com a qual você foi compilado javac-9e com a qual você tenta executá-la jre-8. Recompile essa classe com javac-8ou use o jre-9

Eugene
fonte
1

Estou escrevendo isso porque achei as outras respostas difíceis de entender.

Essencialmente, seu JRE não está atualizado e / ou o Eclipse não está configurado para usar o JRE mais recente.

No Windows, vá para Painel de Controle -> Programas -> Java -> atualizar e prossiga para atualizar o java

ou se você não tiver Java, acesse o site da Oracle e baixe o JRE mais recente.

Depois de fazer isso, vá para o eclipse e, sob a visualização do projeto, clique com o botão direito do mouse em seu projeto, selecione Java Build Path, clique duas vezes em JRE System Library e selecione Workspace Default JRE 14.1.

Se uma versão recente do Java não aparecer aqui, provavelmente não está instalada. Verifique sua versão do JRE (NÃO JDK) e certifique-se de que é recente. Se estiver, tente reiniciar o computador e tente novamente.

Jacob Waters
fonte
0

Vá para a seção Projeto, clique em propriedades> em seguida, para compilador Java> verificar o nível de conformidade do compilador é 1.8, ou não deve haver nenhum aviso amarelo na parte inferior

ARVIND1994
fonte
0

Atualizar dependências do Gradle funciona para mim: clique com o botão direito do mouse sobre o projeto -> Gradle -> Atualizar projeto do Gradle.

Carlos Casallas
fonte
0

Tive um problema semelhante no console depois de construir um Jar no Intellij. Usar a configuração Java para atualizar para uma versão mais recente (Windows -> Configurar Java -> Atualizar -> Atualizar agora) não funcionou e travou na versão 1.8 (Java 8).

Para mudar para uma versão mais recente localmente, tive que instalar o Java 15 JDK em https://www.oracle.com/uk/java/technologies/javase-jdk15-downloads.html e adicioná-lo às configurações do Java Runtime Environment.

Configurações do Java Runtime Environment

ILally
fonte
-1

Para uma solução temporária, clique com o botão direito do mouse em Projeto => Propriedades => Compilador Java => ali, selecione o nível de conformidade do compilador 1.8 => compatibilidade .class 1.8 => compatibilidade de origem 1.8 .

Então, seu código começará a ser executado na versão 1.8 .

Obrigado e cumprimentos, Akshay Kenjale.

Akshay Kenjale
fonte