web-dev-qa-db-fra.com

Quelle est la différence entre le chemin de classe et le chemin de génération

Je suis confus avec ces deux termes.

Aussi, 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, il crée le fichier dans C:\SpringSourceTool ... Je suppose que c'est bien ClassPath?

Comment puis-je obtenir le dossier applicationcontext ou la racine de l'application?

79
mehmet6parmak

Le chemin de build est utilisé pour construire votre application. Il contient tous vos fichiers source et toutes les bibliothèques Java requises pour compiler l'application.

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

88
Andreas_D

Le chemin de classe est la manière conventionnelle de dire au (standard) Java et au runtime Java où trouver les classes compilées). Il s'agit généralement d'une séquence de fichiers JAR noms et répertoires. Le chemin de classe utilisé par le compilateur et le système d'exécution ne doit être le même, mais il est généralement devrait être, en particulier pour un petit projet.

Buildpath n'est pas standard Java. C'est le terme pour la manière plus riche qu'un IDE spécifie la relation entre les "projets" qui composent une application) . Le IDE l'utilise pour comprendre le chemin de classe et le chemin source pour compiler le code Java, et le chemin de classe pour l'exécuter. Le IDE utilise également le chemin de génération pour comprendre comment empaqueter votre code et ses dépendances comme (par exemple) un fichier WAR.

Par exemple, un chemin de génération Eclipse pour un projet inclut les autres projets dont il dépend et répertorie tous les fichiers JAR de bibliothèque supplémentaires sur lesquels le projet contient/s'appuie. Il répertorie également les packages du projet en cours dont les projets en aval peuvent dépendre.

(Si vous utilisez Maven pour votre projet, le mécanisme IDE buildpath est secondaire par rapport aux dépendances déclarées dans les fichiers POM. Par exemple, en utilisant Eclipse avec m2Eclipse, le buildpath est synthétisé à partir du POM des dossiers.)

49
Stephen C

Le chemin d'accès aux classes est utilisé lors de l'exécution pour charger les classes et les ressources compilées.

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

27
KeatsPeeks

Chaque projet Java possède son propre chemin de génération qui spécifie toutes les dépendances requises pour compiler le projet. Ces dépendances peuvent provenir d'autres projets Java dans l'espace de travail, de = Java archive les fichiers .jar ou à partir de dossiers contenant des fichiers .class.

Dans l'environnement CLASSPATH, vous devez spécifier uniquement les fichiers .class (ie, jar, fichiers Zip - À l'intérieur du jar, fichiers Zip, vous ne trouverez que Java classes) c'est-à-dire que vous aidez Java Virtual Machine (JVM) pour trouver les fichiers de classe Java

Aussi, 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, il crée le fichier dans C:\SpringSourceTool ...

C'est là que la machine virtuelle Java a été démarrée, si vous souhaitez créer le fichier ailleurs, utilisez un chemin relatif à partir d'ici.

Voir this et this pour plus d'informations.

4
pavanlimo

Je voudrais ajouter à la réponse d'Andreas_D pour expliquer que le build path est requis par l'IDE/compilateur pour localiser les packages et classes externes utilisés par votre code. Nous les appelons parfois 'dépendances' .

NB: Ces packages externes peuvent être empaquetés dans un fichier .jar compressé ou bien, il peut y avoir plusieurs fichiers jar empaquetés dans une 'bibliothèque' . Une bibliothèque ou un groupe de bibliothèques constitue souvent un 'framework' .

Si votre code nécessite du code écrit par d'autres, vous pouvez importer les dans votre classe en utilisant la commande import. Cependant, cette commande en elle-même est insuffisante car le compilateur ou IDE doit savoir où se trouvent ces classes. Vous le spécifiez dans le build path.

Le classpath d'autre part indique à la JVM exécutant votre application où trouver les dépendances lors de l'exécution réelle de votre code.

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

Buildpath est destiné à être utilisé par l'IDE/compilateur et est un moyen de construire le chemin de classe à 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. Il est utilisé pour fournir le chemin d'accès aux classes de la machine virtuelle Java lors du déploiement.

4
IqbalHamid

build path Est utilisé par IDE pendant la compilation pour construire un projet

Environment variable Est une variable système globale accessible à tous les processus exécutés sous le système d'exploitation (OS).

PATH et CLASSPATH sont environment variables

PATH: maintient une liste de répertoires. Le système d'exploitation recherche dans les entrées PATH les programmes exécutables, tels que Java Compiler (javac) et Java Runtime (Java).

CLASSPATH: conserve une liste de répertoires (contenant de nombreux Java .class) et un fichier JAR (une archive de Java classes .jar). Le Java et Java Runtime recherche les entrées CLASSPATH pour Java classes référencées dans votre programme.

Chemin de recherche des classes d'utilisateurs (en bref, CLASSPATH): déterminé dans l'ordre suivant:

  1. Par défaut, la current working directory (.).
  2. Entrées dans le classpathenvironment variable, Qui remplace la valeur par défaut.
  3. Entrées dans l'option de ligne de commande -cp (Ou -classpath), Qui remplace la variable d'environnement classpath.
  4. L'option de ligne de commande d'exécution -jar, Qui remplace tout ce qui précède.

En savoir plus ici

0
yoAlex5