so stellen Sie die Kompatibilität zwischen zwei Parteien her, die an verschiedenen JDK-Versionen arbeiten

StackOverflow https://stackoverflow.com/questions/3240822

Frage

Mein Projekt ist in 1.4.2 JDK eingebaut.Jetzt wird es mit einem JAR eines Drittanbieters interagieren, das in JDK 1.6 eingebaut ist

Bei der Verwendung von Client-Klassen tritt ein Kompatibilitätsproblem auf.Ist es möglich, das Problem zu beheben, ohne mein JDK auf 1.6 zu aktualisieren oder das JAR von Drittanbietern in 1.4.2 neu zu erstellen

War es hilfreich?

Lösung

Sie können eine mit JDK 1.6 kompilierte Klasse nicht mit dem vorherigen JDK 1.4 ausführen, da Sie eine erhalten java.lang.UnsupportedClassVersionError Ausnahme.Dies liegt daran, dass Java nicht aufwärtskompatibel ist, sondern nur abwärtskompatibel (siehe Spezifikation).

Um dies zu überprüfen, habe ich JDK 1.4.2.19 und JDK 1.6.0.23 installiert und eine Beispielanwendung geschrieben:

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

Erstellt mit JDK 1.6.0.23:

 ../1.6.0.23/bin/javac HelloWorld.java

Und führe es mit JDK 1.4.2.19 aus:

../1.4.2.19/bin/java HelloWorld

Ausgabe:

Exception in thread "main" java.lang.Nicht unterstütztklassenversionfehler: HelloWorld
(Nicht unterstützter Major.nebenversion 50.0)
      at java.lang.ClassLoader.defineClass0(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        ...


Lösung:Sie können versuchen, Ihre Drittanbieteranwendung mit JDK 1.4 neu zu erstellen, wenn sie keine in 1.6 (und 1.5) eingeführten Methoden aufruft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top