Conflito de versão ao tentar rodar o pacote.jar

Estou estudando sobre empacotamento em Java. Após executar o comando java -jar pacote.jar ele me retorna com o erro a seguir:

Error: LinkageError occurred while loading main class br.com.hellopackage.App

  •     java.lang.UnsupportedClassVersionError: br/com/hellopackage/App has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0*
    

Verifiquei as versões do Javac e do Java na minha máquina:

> javac -version
> javac 11.0.18
> 
> java -version
> java version "11.0.18" 2023-01-17 LTS
> Java(TM) SE Runtime Environment 18.9 (build 11.0.18+9-LTS-195)
> Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.18+9-LTS-195, mixed mode)

Ambos aparentemente com a mesma versão. Não consegui encontrar casos parecidos na internet.

Seu JAR foi gerado usando arquivos .class compilados a partir de um Java superior ao 11.0.18.
Como você fez para gerar esse arquivo JAR?

Usou alguma IDE?
Caso afirmativo, veja qual java essa IDE está usando para compilar seu código.

Vc está compilando usando o JDK 17 (class file version 61.0) e tentando empacotar usando o JDK 11 (class file version 55.0).

https://javaalmanac.io/bytecode/versions/

1 curtida

Era exatamente isso @staroski . Eu uso eclipse, e estava tentando compilar o código na versão 17 do java. Muito obrigado!