Pergunta

Meu projeto é construído em 1.4.2 JDK.Agora ele irá interagir com um jar de terceiros, construído em JDK 1.6

Estou tendo problemas de compatibilidade ao usar classes de cliente.É possível resolvê-lo sem atualizar meu JDK para 1.6 ou reconstruir o jar de terceiros em 1.4.2

Foi útil?

Solução

Você não pode executar uma classe compilada com JDK 1.6 no JDK 1.4 anterior porque você obterá um java.lang.UnsupportedClassVersionError exceção.Isso ocorre porque Java não é compatível com versões futuras, é apenas compatível com versões anteriores (consulte especificação).

Para verificar isso, instalei o JDK 1.4.2.19 e o JDK 1.6.0.23 e escrevi um aplicativo de exemplo:

public class HelloWorld {
    public static void main(String[] args) {
            System.out.println("Hello world!");
    }
}

Construído com JDK 1.6.0.23:

 ../1.6.0.23/bin/javac HelloWorld.java

E execute-o com JDK 1.4.2.19:

../1.4.2.19/bin/java HelloWorld

Saída:

Exception in thread "main" java.lang.Erro de classe não suportado: HelloWorld
(Versão major.minor não suportada 50.0)
      at java.lang.ClassLoader.defineClass0(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        ...


Solução:Você pode tentar reconstruir seu aplicativo de terceiros com JDK 1.4 se ele não chamar métodos introduzidos em 1.6 (e 1.5).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top