Kit de développement Java - Java Development Kit
| Développeur(s) | Oracle Corporation |
|---|---|
| Version stable | 17.0.0 / 14 septembre 2021
|
| Système opérateur | Windows NT , macOS (x64), Linux , Solaris |
| Plate-forme | IA-32 , x64 , ARM , SPARC |
| Taper | Kit de développement logiciel |
| Licence | Licence Sun (la plupart également sous GPL) |
| Site Internet | www |
Le kit de développement Java ( JDK ) est une implémentation de l'une des plates-formes Java Platform, Standard Edition , Java Platform, Enterprise Edition ou Java Platform, Micro Edition publiées par Oracle Corporation sous la forme d'un produit binaire destiné aux développeurs Java sur Solaris , Linux , macOS ou Windows . Le JDK comprend une JVM privée et quelques autres ressources pour terminer le développement d'une application Java. Depuis l'introduction de la plate- forme Java , il s'agit de loin du kit de développement logiciel ( SDK ) le plus utilisé .
Le JDK est disponible pour macOS 64 bits x64 (et cette version fonctionne également avec Rosetta 2 ), tandis qu'une version à accès anticipé (aperçu pour les développeurs) de Microsoft est également disponible pour prendre en charge les Mac Apple M1 récents .
Contenu du JDK
Le JDK a comme composants principaux une collection d'outils de programmation, notamment :
- appletviewer - cet outil peut être utilisé pour exécuter et déboguer des applets Java sans navigateur Web
- apt – l' outil de traitement des annotations
- extcheck - un utilitaire qui détecte les conflits de fichiers JAR
- idlj – le compilateur IDL vers Java. Cet utilitaire génère des liaisons Java à partir d'un fichier IDL Java donné .
- jabswitch – le pont d'accès Java . Expose les technologies d'assistance sur les systèmes Microsoft Windows.
- java - le chargeur pour les applications Java. Cet outil est un interpréteur et peut interpréter les fichiers de classe générés par le compilateur javac . Désormais, un seul lanceur est utilisé à la fois pour le développement et le déploiement. L'ancien lanceur de déploiement, jre, n'est plus fourni avec Sun JDK et a été remplacé par ce nouveau chargeur Java.
- javac - le compilateur Java , qui convertit le code source en bytecode Java
- javadoc - le générateur de documentation, qui génère automatiquement la documentation à partir des commentaires du code source
- jar – l'archiveur, qui regroupe les bibliothèques de classes associées dans un seul fichier JAR . Cet outil permet également de gérer les fichiers JAR.
- javafxpackager - outil pour empaqueter et signer des applications JavaFX
- jarsigner - l'outil de signature et de vérification des pots
- javah - le générateur d'en-tête et de stub C, utilisé pour écrire des méthodes natives
- javap - le désassembleur de fichiers de classe
- javaws - le lanceur Java Web Start pour les applications JNLP
- JConsole – Console de surveillance et de gestion Java
- jdb – le débogueur
- jhat - Outil d'analyse de tas Java (expérimental)
- jinfo - Cet utilitaire obtient des informations de configuration à partir d'un processus Java en cours d'exécution ou d'un vidage sur incident. (expérimental)
- jmap Oracle jmap - Memory Map - Cet utilitaire génère la carte de la mémoire pour Java et peut imprimer des cartes de mémoire d'objets partagés ou des détails de mémoire de tas d'un processus ou d'un vidage de mémoire donné. (expérimental)
- jmc – Contrôle de mission Java
- jpackage – un outil pour générer des bundles d'applications autonomes. (expérimental)
- jps – Java Virtual Machine Process Status Tool répertorie les machines virtuelles Java (JVM) HotSpot instrumentées sur le système cible. (expérimental)
- jrunscript – shell de script de ligne de commande Java .
- jshell - une boucle read-eval-print , introduite dans Java 9.
- jstack - utilitaire qui imprime les traces de la pile Java des threads Java (expérimental)
- jstat - Outil de surveillance des statistiques de la machine virtuelle Java (expérimental)
- jstatd – démon jstat (expérimental)
- keytool - outil pour manipuler le magasin de clés
- pack200 – Outil de compression JAR
- policytool – l'outil de création et de gestion de politiques, qui peut déterminer la politique d'un runtime Java, en spécifiant les autorisations disponibles pour le code provenant de diverses sources.
- VisualVM – outil visuel intégrant plusieurs outils JDK en ligne de commande et des capacités légères de profilage des performances et de la mémoire
- wsimport – génère des artefacts JAX-WS portables pour appeler un service Web.
- xjc – Fait partie de l'API Java pour l'API de liaison XML (JAXB). Il accepte un schéma XML et génère des classes Java.
Les outils expérimentaux peuvent ne pas être disponibles dans les futures versions du JDK.
Le JDK est également fourni avec un environnement d'exécution Java complet , généralement appelé environnement d' exécution privé , car il est séparé du JRE « régulier » et a un contenu supplémentaire. Il se compose d'une machine virtuelle Java et de toutes les bibliothèques de classes présentes dans l'environnement de production, ainsi que de bibliothèques supplémentaires uniquement utiles aux développeurs, telles que les bibliothèques d' internationalisation et les bibliothèques IDL .
Les copies du JDK incluent également une large sélection d'exemples de programmes démontrant l'utilisation de presque toutes les parties de l' API Java .
Ambiguïté entre un JDK et un SDK
Le JDK forme un sous-ensemble étendu d'un kit de développement logiciel (SDK). Il comprend des "outils de développement, de débogage et de surveillance des applications Java". Oracle suggère fortement d'utiliser maintenant le terme JDK pour désigner le kit de développement Java SE. Le SDK Java EE est disponible avec ou sans le JDK, c'est-à-dire spécifiquement le JDK Java SE 7.
Autres JDK
En plus du JDK le plus largement utilisé décrit dans cet article, il existe d'autres JDK couramment disponibles pour une variété de plates-formes, dont certains ont commencé à partir de la source Sun JDK et d'autres non. Tous adhèrent aux spécifications Java de base, mais diffèrent souvent dans des domaines explicitement non spécifiés, tels que le ramasse-miettes, les stratégies de compilation et les techniques d'optimisation. Ils comprennent:
En développement ou en maintenance :
- Azul Systems Zing, JDK à faible latence pour Linux ;
- Azul Systems / OpenJDK- based Zulu pour Linux, Windows, Mac OS X, embarqué et le cloud ;
- OpenJDK / IcedTea ;
- Aicas JamaïqueVM ;
- IBM J9 JDK, pour AIX, Linux, Windows, MVS, OS/400, Pocket PC, z/OS ;
Non maintenu ou interrompu :
- Harmonie Apache ;
- Apple de Mac OS Runtime pour Java JVM / JDK pour Classic Mac OS ;
- Blackdown Java – JDK de Port of Sun pour Linux ;
- GNU « s Classpath et GCJ (Le compilateur GNU pour Java );
- Oracle Corporation de JRockit JDK, pour Windows, Linux et Solaris;