89 votes

Quelle est la différence entre Class Path et Build Path ?

Je suis confus avec ces deux termes.

Que dois-je faire pour créer un fichier dans le dossier src d'un projet Spring MVC ? Lorsque je crée en utilisant un objet File, le fichier est créé dans le dossier src. C:\SpringSourceTool... Je suppose qu'il s'agit de ClassPath, non ?

Comment puis-je obtenir le applicationcontext ou la racine de l'application, peu importe ?

107voto

Andreas_D Points 64111

El chemin de construction est utilisé pour construire votre application. Il contient tous vos fichiers sources et toutes les bibliothèques Java nécessaires à la compilation de l'application.

El Chemin de classe est utilisé pour exécuter l'application. Cela inclut toutes les classes et bibliothèques java qui sont nécessaires pour exécuter l'application java. Un chemin de classe est obligatoire, le chemin par défaut est . qui est utilisé si la machine virtuelle java ne peut pas trouver un chemin défini par l'utilisateur. ( CLASSPATH variable d'environnement, -cp ou Class-Path: dans un manifeste jar)

0 votes

Mais javac prend un argument de classpath. Peut-on dire que ce paramètre est "surchargé" pour spécifier le chemin de construction ?

4 votes

Non. Le Chemin de classe est une indication pour le compilateur de ce qu'il doit s'attendre à voir disponible/fourni au moment de l'exécution, puisque vous ne construisez pas vous-même chaque classe que vous utilisez (par exemple JFC, Libraries, ...). L'adresse chemin de construction contient les dépendances source et/ou source/compilé et où les chercher.

0 votes

En développant un plugin, j'ai ajouté toutes les bibliothèques nécessaires au classpath, mais je ne pouvais rien importer. Eclipse ne les a pas vues jusqu'à ce que je les ajoute au chemin de construction.

54voto

Stephen C Points 255558

Le classpath est le moyen conventionnel d'indiquer au compilateur Java (standard) et au runtime Java où trouver les classes compilées. Il s'agit généralement d'une séquence de noms de fichiers JAR et de noms de répertoires. Le classpath utilisé par le compilateur et le système d'exécution ne sont pas doivent être les mêmes, mais ils sont généralement devrait être surtout pour un petit projet.

Buildpath n'est pas la terminologie standard de Java. C'est le terme qui désigne la manière plus riche dont un IDE typique spécifie la relation entre les "projets" qui composent une application. L'IDE utilise ce chemin pour déterminer le classpath et le sourcepath pour compiler le code Java, et le classpath pour l'exécuter. L'IDE utilise également le chemin de construction pour déterminer comment empaqueter votre code et ses dépendances sous la forme (par exemple) d'un fichier WAR.

Par exemple, un chemin de construction Eclipse pour un projet inclut les autres projets dont il dépend, et liste toutes les bibliothèques JAR supplémentaires que le projet contient ou dont il dépend. Il répertorie également les paquets du projet actuel dont les projets en aval peuvent dépendre.

(Si vous utilisez Maven pour votre projet, le mécanisme de buildpath de l'IDE est secondaire par rapport aux dépendances déclarées dans les fichiers POM. Par exemple, si vous utilisez Eclipse avec le m2eclipse, le buildpath est synthétisé à partir des fichiers POM).

28voto

Keats Points 8938

Le chemin des classes est utilisé au moment de l'exécution pour charger les classes et les ressources compilées.

Le chemin de construction est utilisé au moment de la compilation pour trouver les dépendances nécessaires à la construction de votre projet.

0 votes

Pourriez-vous dire que le chemin de la classe est utilisé pour localiser .class (et autres ressources compilées), tandis que le chemin de construction est utilisé pour localiser les fichiers sources qui doivent être compilés ?

1 votes

@Adam Je ne pense pas que ce soit complètement vrai. Le chemin de construction a parfois besoin de fichiers .class pour compiler les fichiers sources. Ainsi, le chemin de construction utilise le chemin de classe dans les coulisses également. Si vous prenez le temps de compiler et d'exécuter un projet java en utilisant la CLI java, vous pourrez le constater. Les commandes javac et java disposent toutes deux d'une option classpath car elles peuvent en avoir besoin.

8voto

IqbalHamid Points 685

Je voudrais ajouter à la réponse d'Andreas_D pour expliquer que la chemin de construction est nécessaire à l'IDE/compilateur pour localiser les paquets et les classes externes. utilisé par votre code. Nous les appelons parfois Dépendances .

NB : Ces paquets externes peuvent être empaquetés dans un fichier .jar compressé ou, en fait, il peut y avoir plusieurs fichiers jar empaquetés dans un fichier .jar. bibliothèque . Une bibliothèque ou un groupe de bibliothèques constitue souvent une cadre". .

Si votre code nécessite du code écrit par d'autres, vous pouvez import dans votre classe en utilisant le import commandement. Cependant, cette commande à elle seule est insuffisante car le compilateur ou l'IDE doit savoir où se trouvent ces classes. Vous le spécifiez dans le champ chemin de construction .

El classpath d'autre part, indique à la JVM qui exécute votre application où trouver les dépendances pendant l'exécution de votre code.

A noter également : Classpath est destiné à être utilisé par la JVM.

Buildpath est utilisé par l'IDE/compilateur et permet de construire le classpath à partir de votre environnement de développement. Lorsque vous configurez votre buildpath via votre IDE, vous configurez également un fichier caché dans votre projet appelé .classpath. Ce fichier est utilisé pour fournir le classpath à la JVM lors du déploiement.

4voto

pavanlimo Points 1921

Chaque projet Java a son propre chemin de construction qui spécifie toutes les dépendances requises pour compiler le projet. Ces dépendances peuvent provenir d'autres projets Java de l'espace de travail, de fichiers .jar de l'archive Java ou de dossiers contenant des fichiers .class.

Dans l'environnement CLASSPATH, vous ne devez spécifier que les fichiers .class (c'est-à-dire les fichiers jar et zip - dans les fichiers jar et zip, vous ne trouverez que les classes Java), c'est-à-dire que vous aidez la machine virtuelle Java (JVM) à trouver les fichiers de classe Java.

Aussi, que dois-je faire pour créer un fichier sous le dossier src d'un projet Spring MVC de Spring MVC ? Lorsque je crée en utilisant un objet File il crée le fichier à l'intérieur de C:\SpringSourceTool...

C'est l'endroit où la JVM a été lancée, si vous voulez créer le fichier ailleurs, utilisez le chemin relatif à partir d'ici.

Ver ce y ce pour plus d'informations.

0 votes

Vous n'avez même pas mentionné le chemin de construction dans votre réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X