IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java et ses versions


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 34
    Par défaut Java et ses versions
    Bonjour.
    J'ai quelques questions bêtes concernant java, j'espère que vous pourrez les éclaircir.

    Actuellement nous sommes à la version 8 de java, néanmoins lorque je fais un java -version, j'obtiens la version 1.8.0_66, c'est leur système de notation qui est comme ca ?

    J'utilise l'openjdk :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    openjdk version "1.8.0_66"
    OpenJDK Runtime Environment (build 1.8.0_66-b17)
    OpenJDK 64-Bit Server VM (build 25.66-b17, mixed mode)
    Ces lignes m'indiquent bien la version de mon JDK, la version de mon JRE et la version de la JVM ? Est-ce que c'est normal que la version du JDK et celle du JRE ne soient pas exactement les même ?

    Pour finir, avec windows, il est possible de télécharger java sur le site d'oracle ou sur java.com, ce sont bien les même versions ?

    Voilà, des questions bêtes, mais qui tournent en boucle dans ma tête ! Merci à vous

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    La version de Java est décrite par un cahier des charges qui définit comment ça fonctionne, ce qu'on peut faire avec, etc. Java 8 introduit des notions (fonctionalités, syntaxe...) qui n'existent pas en Java 7. Mais pour chaque version, il existe forcément des bugs : quanf Oracle corrige certains bugs, il produit une nouvelle version des fichiers pour une version de Java : c'est le 66 dans le numéro de version complet. On peut trouver sur le site d'Oracle la liste des bugs corrigés pour cette version. Le numéro de build (le b17) est un numéro plus technique qui correspond à la production du composant téléchargeable (compilation, packaging des différents programmes (java.exe, javac.exe, etc...) et des ressources, etc.).

    Je n'utilise jamais java.com : je pense qu'il s'agit d'un site dédié au grand public, avec des versions packagées (en bas du portail) et surtout une version unique de Java dont on ne sait pas grand chose (je pense que c'est pour simplifier). En tant que développeur, il est important de charger un JDK plutôt qu'une JRE seule, de pouvoir sélectionner si c'est une versions 32 bits ou 64 bits, de choisir la version exacte qu'on utilise, d'éventuellement de charger un JDK pour un OS qui n'est pas celui qu'on a sur son poste (parce qu'on veut installer un serveur de build par exemple), etc...), ce que seul le site Oracle propose.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 34
    Par défaut
    Merci pour ta réponse, je suis sous ArchLinux, et j'utilise open-jdk8.
    Du coup ce que je ne comprenais pas c'est pouquoi en faisant java -version, j'avais 1.8.xx et pas 8.xx, mais c'est juste une notation ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Je ne sais pas exactement mais je suppose que c'est pas compatibilité ascendante. On est passé de J2SE1.4 (la version 4) à J2SE5, puis à Java SE 6, puis Java SE 7 et Java SE 8 (SE pour Standard Edition). Des numéros de versions essentiellement marketing : mais si on veut pouvoir tester le numéro de version dans un programme, il vaut mieux que le numéro soit toujours organisé de la même manière : le numéro technique est donc toujours 1.x avec x à tester pour savoir quelle est la version...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Compassio Voir le message
    Merci pour ta réponse, je suis sous ArchLinux, et j'utilise open-jdk8.
    Du coup ce que je ne comprenais pas c'est pouquoi en faisant java -version, j'avais 1.8.xx et pas 8.xx, mais c'est juste une notation ?
    Oui c'est la notation complète de la version.
    Les numérotations de Java c'est un beau merdier.

    Grosso-modo tu peux avoir "x.y.z_update-name", avec :
    • "x" qui correspond aux versions apportant des modifications majeurs qui casse la rétrocompatibilité avec les versions précédentes.
      Ce n'est jamais arrivé donc c'est toujours la version "1". De ce fait cette info est quasi inutile.
    • "y" qui correspond aux versions apportant des modifications majeurs tout en conservant la rétrocompatibilité avec les versions précédentes (* même s'il peut y avoir de petites incompatibilités très spécifiques).
    • "z" qui correspond aux versions apportant des modifications mineurs.
      Sauf erreur de ma part ce n'est plus arrivé depuis Java 1.4.2...
    • "_update" correspond aux versions de corrections, ce qui varie selon le distributeur du JRE/JDK.
      Mais là aussi c'est un merdier à comprendre car le nombre peut correspondre soit à des corrections "mineures", soit à des corrections de sécurités... pour une incrémentation différentes.
    • "-name" correspond au nom de la version, ce qui varie selon le distributeur du JRE/JDK.
      On y retrouve généralement le numéro de build, ou les termes "beta", "ea" ou "rc1" pour les versions non-finalisé...


    le "x" et "z" sont devenu complètement inutile car ils ne change pas.
    Ainsi on parle de Java 8 au lieu de Java 1.8.0.


    Sauf erreur la numérotation de version a toujours été ainsi en interne.
    Mais la communication autour de Java était tout autre.

    Ces chaines de version sont très précise, mais pas très compréhensive pour le grand public... du coup on utilise d'autre notation.
    Dans ton cas "1.8.0_66-b17" signifie donc que tu utilises Java 8 update 66, que l'on note généralement JDK 8u66.



    Et c'était même pire avant : le merdier a commencé avec Java 1.2.
    Pour bien faire comprendre qu'il s'agissait d'une version "Majeure", Sun a décidé de la nommer "Java 2" ou plus précisément "Java 2 Standard Edition".

    Du coup on a eu "Java 2 Standard Edition version 1.2"... et comme cela jusqu'à la version 1.4.2 : "Java 2 Standard Edition version 1.4.2".
    Puis Sun a abandonné le "1" inutile, et on a alors eu "Java 2 Standard Edition version 5.0" (ou J2SE 5.0)

    Le "Java 2" complètement dépassé a été ensuite abandonnée tout comme le .0, et on parle désormais de "Java Standard Edition 6" (ou Java SE 6).


    Bref grosso modo lorsqu'on parle de Java 8, on parle en fait de la version 1.8.0, etc.




    A noter que tout ceci va sûrement changer avec Java 9 qui va adopter le format $MAJOR.$MINOR.$SECURITY plus compréhensif (cf JEP 223).
    Ainsi à la place de "1.8.0_66" on aurait par exemple "8.7.15" (le 1. et le .0 sont passé aux oubliettes, et le _66 a été remplacé par deux chiffres distincts qui s'incrémentent indépendamment l'un de l'autre : il y a eu 7 mises à jours mineures, et 15 mises à jours de sécurité).



    a++

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 34
    Par défaut
    Merci pour vos réponses détaillées, je ne pouvais pas avoir meilleures explications

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. distribuer son application java et ses lib [jni]
    Par hpavavar dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 31/05/2007, 10h28
  2. [Info][Téléchargement] java.com et version du JRE
    Par adiGuba dans le forum Général Java
    Réponses: 1
    Dernier message: 10/04/2007, 14h50
  3. [Java] BIRT et version de JRE à l'exécution
    Par mouste79 dans le forum BIRT
    Réponses: 1
    Dernier message: 02/03/2007, 11h10
  4. [compatibilité] java incompatible entre versions ?
    Par d_token dans le forum Débuter avec Java
    Réponses: 21
    Dernier message: 14/09/2006, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo