Ich bin gerade dabei, meine Anwendung von Java 7 nach Java 8 zu migrieren. Momentan benutze ich das Spring 3.1.6 jar. Wäre das mit Java 8 kompatibel oder müsste ich das Spring-Jar aktualisieren?
Ich verstehe, dass die Version Spring 4x natürlich Unterstützung für Java 8 hat, aber das ist zeitkritisch und ich versuche so wenig Gläser wie möglich zu verändern.
Grundsätzlich Spring 3.x
versions unterstützt nur Java-7
. Wenn Sie zu Java-8
migrieren möchten, sollten Sie Spring 4.x
version verwenden.
Allerdings heißt es in einigen Versionshinweisen, dass
Spring Framework 3.2.x
unterstützt die Bereitstellung inJDK 8
runtimes für kompilierte Anwendungen gegenJDK 7
(mit -target 1.7) oder früher. Beachten Sie, dass dies nicht der Fall ist Unterstützung Bytecode-Format vonJDK 8
(- Ziel 1.8, wie für Lambdas benötigt); Bitte upgrade zu diesem Zweck aufSpring Framework 4.0
.
Folgen Sie diesem Link zum Quellartikel.
Nein, es ist nicht kompatibel. Ich bin auf das gleiche Problem gestoßen und während viele sagen werden, dass Java 8 vollständig rückwärtskompatibel zu älteren Versionen von Java ist, stellt sich heraus, dass dies nicht wahr ist.
Dies hat eine sehr gute Erklärung für das genaue Problem, das ich in Java 7 gezielten Code mit Java 8 lief.
Da sich die API von ConcurrentHashMap zwischen den beiden Java-Releases geändert hat, bricht Spring beim Start ab und Sie erhalten
%Vor%Ich hatte keine andere Wahl, als auf Spring 4.x zu aktualisieren (ich bin mir nicht sicher, ob 3.2 oder höher funktioniert hätte, da ich direkt zu 4.x gesprungen bin)
Java 8 und der jvm 8 ist vollständig abwärtskompatibel mit allen älteren Versionen von Java. Java unternimmt sorgfältige Schritte, um sicherzustellen, dass neue Versionen alten Code nicht beschädigen. Jeder Code, den Sie für Java 7 geschrieben haben, kann mit Java 8 kompiliert werden, und jeder Code, den Sie für Java 7 kompiliert haben, kann auf jvm 8 laufen.