(Dieser Artikel ist ein Multi-Post mit Gehe zum Horizont)
Java wurde seit Version 10 auf eine zeitbasierte Version umgestellt. Gleichzeitig hat sich die Versionsnotation erneut geändert, daher habe ich sie zusammengefasst. [^ 1]
[^ 1]: Aber fast das gleiche wie Java 9
Weitere Informationen finden Sie unter JEP 322: Zeitbasierte Release-Versionierung.
Es gibt vier Notationen: $ FEATURE. $ INTERIM. $ UPDATE. $ PATCH
.
Insbesondere wird es als "10.0.1.2" geschrieben.
(Die Notation "Update auf Java 8" ist verschwunden)
Bedeutung | zeitliche Koordinierung | Nächstes Mal | Inhalt | |
---|---|---|---|---|
$FEATURE |
Feature-Release | Alle sechs Monate | März 2018 | 内容にかかわらずAlle sechs Monateにリリース Feature-Ergänzungen, inkompatible Änderungen, Feature-Entfernung[^del]einschließlich |
$INTERIM |
Zwischenfreigabe | kein Plan | - | Kompatible Fehlerbehebungen und Verbesserungen[^enhancements] (Enthält keine Änderungen an der Standard-API) |
$UPDATE |
Release aktualisieren | 1 Monat nach der Veröffentlichung des Features und danach alle 3 Monate | April 2018 Juli 2018 |
Sicherheitsupdate Fehlerbehebungen für die neuesten Funktionen |
$PATCH |
Patch-Veröffentlichung | Nur bei Bedarf | - | Minimale Lösung zur Lösung eines schwerwiegenden Problems |
[^ del]: In diesem Fall wird dies mindestens in der vorherigen Feature-Version angekündigt. [^ Verbesserungen]: Es scheint, dass es sich um einen Fall wie JDK1.4.1, JDK1.4.2 handeln soll.
Diese können mit jeder Methode der Klasse Runtime.Version abgerufen werden.
jshell> Runtime.version().feature()
$1 ==> 10
jshell> Runtime.version().interim()
$2 ==> 0
jshell> Runtime.version().update()
$3 ==> 0
jshell> Runtime.version().patch()
$4 ==> 0
jshell> Runtime.version().pre()
$6 ==> Optional.empty
jshell> Runtime.version().build()
$5 ==> Optional[46]
jshell> Runtime.version().toString()
$7 ==> "10+46"
Ist es neuer als eine Version? Ist es alt? Wenn Sie überprüfen möchten, ist es besser, mit der compareTo
-Methode zu vergleichen, als oben nacheinander zu vergleichen.
jshell> Runtime.version().toString()
$1 ==> "10+46"
jshell> Runtime.version().compareTo(Runtime.Version.parse("10.0.1")) > 0
$2 ==> false
jshell> Runtime.version().compareTo(Runtime.Version.parse("9.0.1")) > 0
$3 ==> true
Runtime.Version
ist jedoch eine in Java 9 hinzugefügte Klasse.
Bitte beachten Sie, dass Sie Java 8 oder eine frühere Version nur über die Systemeigenschaft "java.version" herunterladen können.
jshell> System.getProperty("java.version")
$4 ==> "10"
"Veröffentlichungstermin [^ 3]" und "Herstellerversion" wurden zu den Systemeigenschaften hinzugefügt. Für das Oracle JDK scheint die Herstellerversion der ursprünglich geplante "Release Year.release Month" zu bleiben.
[^ 3]: Um genau zu sein, das Datum der GA. Die Eary Access-Version wird also ein zukünftiges Datum haben.
jshell> System.getProperty("java.version.date")
$1 ==> "2018-03-20"
jshell> System.getProperty("java.vendor.version")
$2 ==> "18.3"
Recommended Posts