1
resposta

O que é compiler compliance level?

Tentando solucionar um problema de compatibilidade do JDK e do JRE, verifiquei no Eclipse que há algumas opções que podem ser selecionadas mas que acionam um alerta de que não se adequam ao compiler compliance level de 14. Por exemplo, se eu seleciono Java SE 8 nos JREs instalados, aparece essa mensagem. A única versão que não emite essa mensagem é o JRE (15.0.1), que aparentemente foi uma atualização feita depois que eu havia baixado o JDK, pois ele não está localizado em algum lugar diferente no computador.

Vi que eu posso alterar esse level em Preferências>Compiler. Isso afeta alguma coisa? Eu deveria deixar em 14 ou posso baixar?

1 resposta

Olá Rafael, tudo bem com você?

O "compiler compliance level" é onde definimos qual é a versão mínima do Java necessária para rodar o nosso código. Em outras palavras, quando selecionamos o Java 8 como você fez anteriormente, estamos dizendo ao compilador que o código que estamos escrevendo deverá ser rodado em um ambiente que tenha o Java 8.

Problema: Assumindo que a versão do Java é a 14, existe a possibilidade de que você está usando recursos mais recentes do Java 14 que são incompatíveis com o Java 8, pois na época em que o Java 8 foi lançado, esses recursos nem existiam. Diferente de você especificar o Java 15 que provavelmente vai conter todos os recursos disponíveis de suas versões anteriores.

Minha recomendação é deixar em 14 mesmo, assumindo que essa é a sua versão do Java. Dessa forma, você estará dizendo ao Java que o seu código deverá ser compilado para a versão 14, eliminando qualquer possibilidade de erro por incompatibilidade.

Se ficou alguma dúvida é só avisar! Forte abraço e bons estudos!!