Domanda

Il mio progetto è costruito in 1.4.2 JDK. Ora interagirà con un barattolo di terze parti, costruire in JDK 1.6

Sto ricevendo problemi di compatibilità durante l'utilizzo delle classi del cliente. È possibile risolverlo senza aggiornare il mio JDK a 1.6 o ricostruire il barattolo di terze parti in 1.4.2

È stato utile?

Soluzione

Non è possibile eseguire una classe compilata con JDK 1.6 sul precedente JDK 1.4 perché avrai un'eccezione java.lang.UnsupportedClassVersionError.Ciò è dovuto a Java non è compatibile in modo compatibile, è proprio arretrato compatibile (vedere Specifica ).

Per verificarlo ho installato JDK 1.4.2.19 e JDK 1.6.0.23 e ha scritto un'applicazione di esempio:

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

Lo ha costruito con JDK 1.6.0.23:

 ../1.6.0.23/bin/javac HelloWorld.java
.

e eseguilo con JDK 1.4.2.19:

../1.4.2.19/bin/java HelloWorld
.

Uscita:

Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld
(Unsupported major.minor version 50.0)
      at java.lang.ClassLoader.defineClass0(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        ...
.



Soluzione : È possibile provare a ricostruire la tua applicazione di terze parti con JDK 1.4 se non chiama metodi introdotti in 1.6 (e 1,5).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top