(Cet article est un article multiple avec Aller à l'horizon)
Java est passé à une version basée sur le temps depuis la version 10. Parallèlement à cela, la notation de la version a encore changé, je l'ai donc résumée. [^ 1]
[^ 1]: mais presque identique à Java 9
Voir JEP 322: gestion des versions de version en fonction du temps pour plus de détails.
Il y a quatre notations: $ FEATURE. $ INTERIM. $ UPDATE. $ PATCH
.
Plus précisément, il s'écrit «10.0.1.2».
(La notation "Mise à jour jusqu'à Java 8" a disparu)
sens | Horaire | La prochaine fois | Contenu | |
---|---|---|---|---|
$FEATURE |
Sortie de fonctionnalité | Tous les six mois | Mars 2018 | 内容にかかわらずTous les six moisにリリース Ajout de fonctionnalités, modifications incompatibles, suppression de fonctionnalités[^del]comprenant |
$INTERIM |
Libération intermédiaire | pas d'idée | - | Corrections de bogues et améliorations compatibles[^enhancements] (N'inclut pas les modifications apportées à l'API standard) |
$UPDATE |
Mettre à jour la version | 1 mois après la sortie de la fonctionnalité, et tous les 3 mois par la suite | Avril 2018 Juillet 2018 |
Correction de sécurité Corrections de bogues pour les dernières fonctionnalités |
$PATCH |
Publication du patch | Seulement en cas de besoin | - | Solution minimale pour résoudre un problème grave |
[^ del]: Dans ce cas, il sera annoncé au moins dans la version précédente de la fonctionnalité. [^ améliorations]: Il semble que ce soit censé être un cas comme JDK1.4.1, JDK1.4.2.
--Si tous les chiffres après un certain chiffre sont 0, omettez-le.
$ FEATURE
, $ INTERIM
est incrémenté, les nombres après cela seront réinitialisés.Ceux-ci peuvent être obtenus avec chaque méthode de la classe Runtime.Version.
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"
Est-ce plus récent qu'une version? Est-il vieux? Si vous voulez vérifier, il vaut mieux comparer avec la méthode compareTo
que de comparer un par un ci-dessus.
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
Cependant, Runtime.Version
est une classe ajoutée dans Java 9.
Veuillez noter que si vous devez prendre en charge Java 8 ou version antérieure, vous ne pouvez l'obtenir qu'à partir de la propriété système java.version
.
jshell> System.getProperty("java.version")
$4 ==> "10"
"Date de sortie [^ 3]" et "Version du fournisseur" ont été ajoutés aux propriétés système. Pour le JDK Oracle, la version du fournisseur semble rester le "mois de publication de l'année de sortie" initialement prévu.
[^ 3]: Pour être exact, la date de l'AG. Ainsi, la version Eary Access aura une date ultérieure.
jshell> System.getProperty("java.version.date")
$1 ==> "2018-03-20"
jshell> System.getProperty("java.vendor.version")
$2 ==> "18.3"
Recommended Posts