Bibliothèque de classes Java - Java Class Library

La bibliothèque de classes Java ( JCL ) est un ensemble de bibliothèques chargeables dynamiquement que les langages de la machine virtuelle Java (JVM) peuvent appeler au moment de l'exécution . Étant donné que la plate-forme Java ne dépend pas d'un système d'exploitation spécifique , les applications ne peuvent s'appuyer sur aucune des bibliothèques natives de la plate-forme. Au lieu de cela, la plate-forme Java fournit un ensemble complet de bibliothèques de classes standard , contenant les fonctions communes aux systèmes d'exploitation modernes.

JCL a trois objectifs au sein de la JVM:

  • Comme d'autres bibliothèques de code standard , elles fournissent au programmeur un ensemble bien connu de fonctionnalités utiles, telles que des classes de conteneurs et le traitement des expressions régulières .
  • La bibliothèque fournit une interface abstraite aux tâches qui dépendraient normalement fortement du matériel et du système d'exploitation, telles que l' accès au réseau et l' accès aux fichiers .
  • Certaines plates-formes sous-jacentes peuvent ne pas prendre en charge toutes les fonctionnalités attendues par une application Java. Dans ces cas, l'implémentation de la bibliothèque peut soit émuler ces fonctionnalités, soit fournir un moyen cohérent de vérifier la présence d'une fonctionnalité spécifique.

Implémentation et configuration

La bibliothèque de classes Java ( JCL ) est presque entièrement écrite en Java, à l'exception des parties qui nécessitent un accès direct au matériel et au système d'exploitation (comme pour les E / S ou les graphiques bitmap ). Les classes qui donnent accès à ces fonctions utilisent généralement des wrappers Java Native Interface pour accéder aux API du système d'exploitation .

Presque tout le JCL est stocké dans un seul fichier d' archive Java appelé "rt.jar" qui est fourni avec les distributions JRE et JDK . La bibliothèque de classe Java (de rt.jar) est situé dans le classpath d'amorçage par défaut et ne doit pas apparaître dans la classpath déclarée pour l'application. Le moteur d'exécution utilise le chargeur de classe d'amorçage pour trouver le JCL.

Le Java Module System (qui fait partie de la version Java 9 ) a cassé le fichier JAR monolithique "rt.jar" et a modulé le JCL lui-même en plusieurs modules avec des dépendances spécifiées.

Conformité

Toute implémentation Java doit réussir les tests de conformité du kit de compatibilité de la technologie Java , qui incluent les tests JCL.

Caractéristiques principales

Les fonctionnalités JCL sont accessibles via les classes fournies dans les packages .

Licence

Licences antérieures

Avant la sortie d'OpenJDK, le JDK était basé sur une licence propriétaire .

Suite à leur promesse de publier un JDK entièrement modifiable basé sur un code presque entièrement gratuit et open-source au premier semestre 2007, Sun a publié le code source complet de la bibliothèque de classes sous GPL le 8 mai 2007, à l'exception de certaines parties limitées qui étaient licenciés par Sun auprès de tiers qui ne souhaitaient pas que leur code soit publié sous une licence open source. L'objectif de Sun était de remplacer les pièces qui restent propriétaires et fermées par des implémentations alternatives et de rendre la bibliothèque de classes totalement gratuite et open source.

Jusqu'en décembre 2010, la partie encombrée restante du JDK était mise à disposition par Sun puis Oracle en tant que binaires Plugs qui étaient nécessaires pour construire le JDK mais pas nécessaires pour l'exécuter. en mai 2007, la seule partie de la bibliothèque de classes qui restait propriétaire et fermée (4% en mai 2007 pour OpenJDK 7 et moins de 1% en mai 2008 et OpenJDK 6) était:

  • L' implémentation SNMP .

Depuis la première version de mai 2007, Sun, avec l'aide de la communauté, a été publié en open-source ou remplacé par des alternatives open-source presque tout le code encombré:

  • Tout le code du moteur audio, y compris le synthétiseur logiciel , est devenu open source. Le synthétiseur logiciel à source fermée a été remplacé par un nouveau synthétiseur développé spécifiquement pour OpenJDK appelé Gervill ,
  • Toutes les classes de cryptographie ont été publiées en open-source,
  • Le code qui met à l'échelle et pixellise les polices utilise FreeType open source
  • La gestion native des couleurs utilise LittleCMS open source . Il existe une couche enfichable dans le JDK, de sorte que la version commerciale de Java puisse utiliser le système de gestion des couleurs original et propriétaire et OpenJDK peut utiliser LittleCMS.
  • Le code du rastériseur graphique anti-aliasing utilise le moteur de rendu open source Pisces utilisé dans le projet phoneME .
  • Le plugin JavaScript est open source (le moteur JavaScript lui-même était open source depuis le début).

Version open source

À partir de décembre 2010, tous les soi-disant plugs binaires ont été remplacés par des remplacements open source , ce qui a rendu l'ensemble du JDK ouvert.

Implémentations alternatives

GNU Classpath est l'autre principale bibliothèque de classes de logiciels libres pour Java. Contrairement à d'autres implémentations, il implémente uniquement la bibliothèque de classes, et est utilisé par de nombreux environnements d'exécution Java gratuits (comme Kaffe , SableVM , JamVM ).

Apache Harmony était une autre bibliothèque de classes de logiciels libres. Son objectif était d'implémenter les autres parties de la pile Java ( machine virtuelle , compilateur et autres outils nécessaires à toute implémentation Java ).

Voir également

Références

Liens externes