Bad, bad class. No donut for you

30 Dec
2008

BAD by !.keesssss.!
Provavelmente quem já desenvolve em java à algum tempo, já passou por esse problema: UnsupportedClassVersionError. Ele acontece basicamente quando tentamos executar um .class compilado com uma versão superior à da JVM que estamos tentando executar (exemplo: rodar um .class compilado com java 1.6 em uma jvm 1.5). Hoje pela manhã estava enfrentando esse problema e não conseguia de jeito nenhum entender o porque.

java.lang.UnsupportedClassVersionError: Bad version number in .class file

Após decompilar uma classe (aproveitando, usei o JD-GUI que funcionou bem no MacOS) que estava rodando no servidor (e *MEH* eu não tinha o fonte), alterar, recompilar na minha máquina e jogar de volta pro servidor, comecei a receber a mensagem de erro. Após revisar todas as configurações do Eclipse (Java Compiler específico no projeto, JRE System Library correto) continuei recebendo o mesmo erro.

Depois de procurar muito, descobri que mesmo alterando todas as configurações no Eclipse, na pasta do projeto ainda ficou um arquivo configurado pra java 6.0. Então se enfrentar o mesmo problema, procure pelo arquivo:

$PROJECT_ROOT/.settings/org.eclipse.jst.common.project.facet.core.prefs

E edite alterando a JRE para a correta para o seu projeto.

Popularity: 4% [?]

by-nc-nd

1 Response to Bad, bad class. No donut for you

Avatar

Jardel Weyrich

August 20th, 2009 at 12:55 am

Argh! Passei por isso uns meses atrás fazendo deploy em um IAS com java 1.4. Tudo começou com uma biblioteca compilada com java 1.5. Substitui pela versão compatível, e o problema continuou.. tava ficando louco já. Levei algumas horas pra descobrir como resolver. Eclipse–;

Comment Form

top