Hallo,
ein in Java 1.8 entwickeltes Projekt wirft unter Tomcat 8 einen UnsupportedClassVersionError. Der Tomcat läuft unter Java 1.7 und ich vermute, dass ich den auf 1.8 hochziehen muss.
Wie stellt man den Tomcat am besten auf Java 1.8 um?
Was ist mit laufenden Java 1.7-Anwendungen? Müssen die in jedem Fall auch auf 1.8 aktualisiert werden?
Danke
Magnus
Wenn du in deinem Project keine Java 1.8 Funktionalitäten verwendest, dann kannst du auch unter Java 1.7 lauffähigen Byte-Code erzeugen.
Wie du den Tomcat "umstellst" hängt davon ab, wo dieser bisher die Information herbekommt, welches JDK er denn verwenden soll. Tomcat liefert ein kleines Hilfsprogramm für Konfiguration mit aus: tomcatw.exe. Für das einfach mal aus. Da ist eigentlich alles selbsterklärend.
Warum aber überhaupt die Abweichung zwischen Entwicklungs- und Produktiv-Umgebung? Wieso entwickelst du denn unter 1.8 wenn dein Programm unter 1.7 laufen soll?
Deine bestehenden 1.7 Anwendung sollten auch unter 1.8 laufen. Der Teufel steckt im Detail ... mit der Abwärtskompitabilität ist das immer so ein Sache für sich. Daher in jedem Fall testen.
Hallo stg,
zu Deinen Fragen: Es gibt Gründe, in der Entwicklungsumgebung auf Java 1.8 zu gehen. Offenbar erfordert das auf dem produktiven Tomcat auch die Version 1.8. Ob dem immer so ist und wie man den Tomcat hochzieht, wären jetzt meine Fragen gewesen.
Magnus
Nö, es gibt nie einen Grund, der es rechtfertigt unter einer anderen Java Version zu entwickeln, als im Produktivbetrieb später eingesetzt wird. Das ist in meinen Augen sogar grob fahrlässig. Das es zu unerwarteten Problemen führen kann, hast du ja nun selbst schon bemerkt.
Wenn du da anderer Meinung bist, dann wäre ich gespannt, was in deinen Augen die Gründe dafür sind.
Ich hab bei mir auf der Entwicklungsmaschine derzet z.B. auch 7 verschiedene JDKs und 5 verschiedene Anwendungsserver, die ich je nach Projekt und Kunde kombiniere.
Vielleicht, um das wieder etwas auf den Boden zu holen (auch wenn ich auch nicht immer für Deeskalation bekannt bin ):
Ich stimme dir - @Knorpi - infofern zu: Auf Java 8 zu wechseln macht Sinn. Wenn du Jars mit 1.7 gebaut hast, werden sie auf jeden Fall weiter auf der 1.8er-Version laufen (es kann sein, dass es erst mit Java9 erste Brüche geben wird, aber ansonsten ist Java i.d.R. rückwertskompatibel).
Auf meinem Laptop habe ich eigentlich immer die aktuellste Java-Version. Auf den Servern i.d.R. die aktuellste OpenJDK-Version, bei einigen Ausnahmen auch noch Java7, aber das stirbt bei uns auch langsam aus, denn von uns will eigentlich keiner mehr Lambdas und Streams missen...