Java Class Librairy : c’est quoi ?
La JCL, ça pourrait être le Judo Club de Longvic en Bourgogne mais en fait cela signifie Java Class Library !
Plus précisément c’est un ensemble de bibliothèques Java qui est chargée dynamiquement par la JVM. Elle propose des implémentations Java pour fournir des services de base tel que les accès aux fichiers, la manipulation de chaîne de caractères, les calculs mathématiques, le graphisme, etc. Par conséquent, une JCL dépend directement de l’architecture. De plus, elle doit passer le Technology Compatibility Kit (TCK) pour être validée mais toutes ne le sont pas !
La JCL est importante pour les systèmes embarqués. En effet, celle-ci doit être choisie suivant son occupation en mémoire de masse, en mémoire vive mais aussi en services fournies.
Plusieurs implémentations de JCL existent :
- Sun Classpath :
- implémentée par Sun/Oracle
- JCL inclus dans le JDK et JRE de Sun appelé (fichier rt.jar)
- GNU Classpath :
- implémentée par le projet GNU
- version Java supportée : 4 et 5
- licence : GNU General Public License (GPL)
- utilisé par de nombreuses JVM : Kaffe, SableVM, JamVM, CACAO
- OpenJDK :
- implémentée par Sun/Oracle
- version java supporté : 6 et 7
- licence : GNU General Public License (GPL)
- implémentation de référence pour Java SE 7
- d’après Wikipedia, beaucoup préfère cette implémentation de JCL à d’autres
- Apache Harmony :
- implémentée par Apache
- version Java supportée : 5 et 6
- licence : Apache License, Version 2
- utilisé par : Dalvik (Google Android VM), JC Harmony, BootJVM, SableVM, DRLVM, JRockit VM, JikesRVM, Ja.NET SE
- selon Wikipedia, le 11 octobre 2010, IBM, principale développeur de cette JCL, décide de soutenir la JCL OpenJDK laissant tomber Harmony
- JCLFoundation :
- implémentée par IBM
- livrée avec WebSphere Everyplace Micro Environment (WEME)
- version Java supportée : 4
- utilisée par J9
Il existe une confusion assez commune entre le mot « classapth » qui fait référence à la variable globale « CLASSPATH » et « GNUClasspath » qui est l’implémentation d’une Java Class Library de GNU Project. Il convient de parler de JCL et non de Classpath !

envoi en cours...
Il y aussi des JCLs liés aux machines virtuelles specifiques. Par exemple, le perclib.jar dans Aonix PERC Ultra implement des fonctionalités specifiés par la norme Java pour executer sur le VM PERC.
Effectivement Tom, certaines sociétés, comme Atego par exemple, propose une implémentation spécifique avec leur machine virtuelle.
J’ai écris un article sur les différents machines virtuelles temps réels : Les machines virtuelles Java temps réels (Java Real Time VM)
Merci pour la précision.