Ich dreh halber mit java durch - kann mir das jmd erklären?
Habe eine Anwendung vor ca 1 Jahr geschrieben.
Habe jetzt ein kleines Update rausgebracht.
Jetzt kommt der Fehler:
Exception in thread "main" java.lang.UnsupportedClassVersionError: abc has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes classfile versions up to 52.0
Durch https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers bin ich dann gekommen, dass classversion 52 von java 8 stammt und die version 55 von java11.
Ich habe jetzt java 11 SE (JRE wurde in JDK integriert) installiert und das als einziges sogar aktiviert und rest deaktiviert + Umgebungsvariablen angepasst aber die Fehlermeldung kommt schon seit 2 Stunden und ich raste gleich aus xD
Hab ich da iwas falsch verstanden?
2 Antworten
- Was sagt denn dein java -version ?
- Hier noch mal ne aktuelle Liste: https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers
Ansonsten kompillier es einfach noch mal frisch unter der neuen Java-Version, dann sollte es ja auf jeden Fall laufen.
Fehler gefunden: Habe es auf einer alten Win7 VM getestet und da ist der Path als Umgebungsvariable extrem unübersichtlich und vorne dran war ein Verweis auf die "ältere" javaversion. Habe den entfernt und jetzt gehts.
Java 12 ist aktuell.
Java 11 ist eine Version mit Langzeitsupport
Java 9 und 10 sind bereits end of life
Java 8 wurde nachträglich als LTS (Langzeitsupport) deklariert.
Normaler Support ohne LTS dauert 6 Monate, weil Java alle 6 Monate in einer neuen Version raus kommt. Wie lange ein LTS Release unterstützt wird weiß ich nicht.
Desweitren ist das Oracle JRE/JDK nur noch zur Entwicklung kostenlos. Theoretisch musst du also, wenn du produktive Sachen damit machst bezahlen (haha, wer macht das schon / wer prüft das nach)
Aber das OpenJDK ist noch kostenlos
Versuch doch mal die Anwendung manuell auszuführen.
<Installationspfad der JDK11>/bin/java.exe -jar "anwendung.jar"
Fehler gefunden: Habe es auf einer alten Win7 VM getestet und da ist der Path als Umgebungsvariable extrem unübersichtlich und vorne dran war ein Verweis auf die "ältere" javaversion. Habe den entfernt und jetzt gehts.
Ich wollte mir nur meine akute Langeweile mit einem doofen Kommentar versüßen ;-)
Aber was mich jetzt interessiert:
Weisst du warum es 13 Javaversionen gibt? Ich vermute umso höher, desto neuer? oder noch extra zusätzliche Features evtl für devs?
Weil standardmäßig wird die Version 8 oder 9 gedownloaded auf der Java Homepage.