-
Histoire de classpath
Bonjour,
Je reviens aujourd'hui dans le cadre de mes révisions pour la rentrée vous demander de l'aide sur la notion de classpath qui est un peu floue pour moi encore.
Voici le contenu de mon cours à propos du classpath :
"La liaison dynamique implique qu’un programme Java est une collection de fichiers. Ces fichiers peuvent se trouver à différents endroits dans le système de fichiers. Il faut donc un mécanisme pour permettre de les localiser. En Java, on utilise le classpath : le chemin des classes."
Moi je vois le classpath comme un mécanisme permettant de gérer les dépendances des différents fichiers d'un programmes. Est-ce cohérent ?
Sinon le classpath est-il lié avec les variables d'environnement ?
Cordialement
-
Salut,
Vois le "classpath" comme un ensemble de chemins (path), soit de dossier, soit de jar (archive Java, donc équivalent Java des zip avec des trucs en plus). C'est ce qui permet lors de l'exécution de trouver les fichiers .class et d'éventuels autres fichiers de ressources (image par exemple). Plutôt que d'avoir à chercher sur l'ensemble de tous les dossiers de tous les disques (ce qui prendrait un temps colossal), on indique juste les endroits spécifiques du disque où se trouvent les classes (ou ressources) qu'on veut utiliser dans le programme.
Le lien avec les variables d'environnement, c'est juste qu'on peut définir le classpath dans une variable d'environnement (CLASSPATH).
Et ce lien permet aussi de faire un parallèle entre ce moyen de trouver les classes avec le moyen qu'utilise l'OS pour trouver les exécutables par la variable d'environnement PATH. C'est également un ensemble de chemin où chercher les exécutables, ce qui permet sous shell d'en lancer sans forcément indiquer le chemin complet.
-
Merci Joël, encore une réponse très complète comme tu sais si bien les formuler
Ce que je saisis pas en fait c'est au niveau des variables d'environnement comment on peut définir une variable classpath qui pointe potentiellement à la fois vers des centaines, voire des milliers de fichiers dans une appli..
Sinon ok pour la définition
bien à toi