Java Language Que signifie le classpath: comment les recherches fonctionnent


Exemple

Le classpath a pour but d'indiquer à une machine virtuelle Java où trouver les classes et autres ressources. La signification du chemin de classe et le processus de recherche sont étroitement liés.

Le classpath est une forme de chemin de recherche qui spécifie une séquence d' emplacements pour rechercher des ressources. Dans un classpath standard, ces emplacements sont soit un répertoire dans le système de fichiers hôte, un fichier JAR ou un fichier ZIP. Dans chaque cas, l'emplacement est la racine d'un espace de noms qui sera recherché.

La procédure standard pour rechercher une classe sur le classpath est la suivante:

  1. Carte du nom de la classe à un chemin d'accès relatif ClassFile RP . Le mappage des noms de classe avec les noms de fichiers de classe est décrit ailleurs.

  2. Pour chaque entrée E dans le classpath:

    • Si l'entrée est un répertoire de système de fichiers:
      • Résoudre RP rapport à E pour donner un chemin d'accès absolu AP .
      • Testez si AP est un chemin pour un fichier existant.
      • Si oui, chargez la classe à partir de ce fichier
    • Si l'entrée est un fichier JAR ou ZIP:
      • Recherche RP dans l'index du fichier JAR / ZIP.
      • Si l'entrée de fichier JAR / ZIP correspondante existe, chargez la classe à partir de cette entrée.

La procédure de recherche d'une ressource sur le chemin de classe dépend du caractère absolu ou relatif du chemin d'accès à la ressource. Pour un chemin de ressource absolu, la procédure est comme ci-dessus. Pour un chemin de ressource relatif résolu avec Class.getResource ou Class.getResourceAsStream , le chemin du package de classes est ajouté avant la recherche.

(Notez que ces procédures sont implémentées par les chargeurs de classes Java standard. Un chargeur de classe personnalisé peut effectuer la recherche différemment.)