Java Development Kit
# Java Development Kit

Le Java Development Kit (JDK) désigne un ensemble de bibliothèques logicielles de base du langage de programmation Java, ainsi que les outils avec lesquels le code Java peut être compilé, transformé en bytecode destiné à la machine virtuelle Java.

Il existe plusieurs éditions de JDK, selon la plate-forme Java considérée (et bien évidemment la version de Java ciblée) :

* JSE pour la Java 2 Standard Edition également désignée J2SE ;
* JEE, sigle de Java Enterprise Edition également désignée J2EE ;
* JME 'Micro Edition', destinée au marché mobiles ;
* etc.

À chacune de ces plateformes correspond une base commune de Development Kits, plus des bibliothèques additionnelles spécifiques selon la plate-forme Java que le JDK cible, mais le terme de JDK est appliqué indistinctement à n'importe laquelle de ces plates-formes.

## Composants

### Commandes en ligne

Les principaux composants du JDK sont une sélection d'outils de programmation, incluant :

* java : le chargeur d'application Java ;
* javac : le compilateur, qui convertit le code source en fichier .class (contenant le bytecode Java) ;
* appletviewer : cet outil peut être utilisé pour exécuter et déboguer des applets Java sans navigateur ;
* apt : l'outil de traitement des annotations ;
* extcheck : un outil détectant les conflits de fichiers JAR ;
* idlj : compilateur IDL vers Java. Cet outil génère les bindings Java d'un fichier Java IDL donné ;
* javadoc : le générateur de documentation, qui génère automatiquement de la documentation à partir des commentaires du code source ;
* jar : l'archiveur, qui met sous forme d'un paquetage unique l'ensemble des fichiers class en un fichier JAR ;
* javah : le générateur de fichiers headers C, utilisé pour écrire les méthodes natives ;
* javap : le désassembleur de fichier .class ;
* javaws : le lanceur Java Web Start pour les applications JNLP ;
* jconsole : Java Monitoring and Management Console ;
* jdb : le débogueur ;
* jhat : outil expérimental d'analyse du tas ;
* jrunscript : script shell Java ;
* policytool : outil de création et de gestion de la vie privée, déterminant le niveau de confidentialité utilisé par Java en fonction de la source du code ;
* VisualVM : outil de visualisation intégrant plusieurs des outils présentés ci-dessus et permettant de faire du profiling.

Le JDK est également founi avec l'environnement d'exécution Java complet, contenant la Java Virtual Machine ainsi que toutes les bibliothèques de classes présentes dans l'environnement de production.

### API

Le JDK JavaSE inclut dans sa bibliothèque logicielle :

* jni, ou Java Native Interface, permettant d'interfacer du code Java depuis d'autres langages de programmation.
* jdbc,
* swing
* java 2d
* jaxp

## Versions

Pour connaître la version du JDK installée sur un poste, il suffit de taper la commande javac -version, ou utiliser l'url dédiée de Java.

