web-dev-qa-db-de.com

Was ist der Unterschied zwischen Klassenpfad und Erstellungspfad?

Ich bin mit diesen beiden Begriffen verwechselt.

Was kann ich auch tun, um eine Datei im Ordner src eines Spring MVC-Projekts zu erstellen? Wenn ich mit einem File-Objekt erstelle, erstellt es die Datei in C:\SpringSourceTool ... Ich denke, das ist ClassPath, oder?

Wie kann ich den Ordner applicationcontext oder das Stammverzeichnis der Anwendung abrufen?

79
mehmet6parmak

Der Erstellungspfad wird zum Erstellen Ihrer Anwendung verwendet. Es enthält alle Quelldateien und alle Java - Bibliotheken, die zum Kompilieren der Anwendung erforderlich sind.

Der Klassenpfad wird zum Ausführen der Anwendung verwendet. Dies schließt alle Java Klassen und Bibliotheken ein, die zum Ausführen der Java Anwendung erforderlich sind. Ein Klassenpfad ist obligatorisch, der Standardpfad ist . Wird verwendet, wenn die Java= virtuelle Maschine keinen benutzerdefinierten Pfad finden kann. (CLASSPATH Umgebungsvariable, -cp flag oder Class-Path: Attribut in einem Jar-Manifest)

88
Andreas_D

Der Klassenpfad ist die herkömmliche Methode, um dem (Standard-) Java Compiler und der Java Laufzeitumgebung) mitzuteilen, wo kompilierte Klassen zu finden sind. Dies ist normalerweise eine Folge von JAR-Dateien Namen und Verzeichnisnamen: Der vom Compiler und dem Laufzeitsystem verwendete Klassenpfad ist nicht muss sein gleich, aber normalerweise sollte sein, insbesondere für ein kleines Projekt.

Buildpath ist keine Standardterminologie Java. Dies ist der Begriff für die umfassendere Art und Weise, in der ein typisches IDE die Beziehung zwischen den "Projekten", aus denen eine Anwendung besteht, angibt Die IDE verwendet dies, um den Klassenpfad und den Quellpfad für das Kompilieren des Java - Codes und den Klassenpfad für dessen Ausführung zu ermitteln. Die IDE verwendet auch den Erstellungspfad, um herauszufinden, wie Sie Ihren Code und seine Abhängigkeiten (zum Beispiel) als WAR-Datei verpacken können.

Ein Eclipse-Erstellungspfad für ein Projekt enthält beispielsweise die anderen Projekte, von denen es abhängt, und listet alle zusätzlichen Bibliotheks-JARs auf, die das Projekt enthält/von denen es abhängt. Außerdem werden die Pakete im aktuellen Projekt aufgelistet, von denen nachgelagerte Projekte abhängen können.

(Wenn Sie Maven für Ihr Projekt verwenden, ist der Buildpath-Mechanismus IDE= den in den POM-Dateien deklarierten Abhängigkeiten untergeordnet. Wenn Sie beispielsweise Eclipse mit m2Eclipse verwenden, wird der Buildpath aus dem POM synthetisiert Dateien.)

49
Stephen C

Der Klassenpfad wird zur Laufzeit zum Laden kompilierter Klassen und Ressourcen verwendet.

Der Erstellungspfad wird zur Kompilierungszeit verwendet, um die Abhängigkeiten zu ermitteln, die zum Erstellen Ihres Projekts erforderlich sind.

27
KeatsPeeks

Jedes Java - Projekt hat einen eigenen Erstellungspfad, der alle zum Kompilieren des Projekts erforderlichen Abhängigkeiten angibt. Diese Abhängigkeiten können von anderen Java - Projekten im Arbeitsbereich stammen, von = Java archiviert .jar-Dateien oder aus Ordnern, die .class-Dateien enthalten.

In der CLASSPATH-Umgebung müssen Sie nur .class-Dateien angeben (z. B. jar, Zip-Dateien - In jar, Zip-Dateien finden Sie nur Java Klassen), dh Sie helfen Java Virtual Machine (JVM), um Java class files) zu finden

Was kann ich auch tun, um eine Datei im Ordner "src" eines Spring MVC-Projekts zu erstellen? Wenn ich mit einem File-Objekt erstelle, erstellt es die Datei in C:\SpringSourceTool ...

Hier wurde die JVM gestartet. Wenn Sie die Datei an einer anderen Stelle erstellen möchten, verwenden Sie den relativen Pfad von hier.

Siehe this und this für weitere Informationen.

4
pavanlimo

Ich möchte zu Andreas_Ds Antwort hinzufügen, um zu erklären, dass die IDE/der Compiler build path benötigt, um externe Pakete und Klassen zu finden, die von Ihrem Code verwendet werden. Wir bezeichnen diese manchmal als 'Abhängigkeiten' .

NB: Diese externen Pakete können in einer komprimierten JAR-Datei gepackt sein, oder es können mehrere JAR-Dateien in einer 'Bibliothek' gepackt sein. Eine Bibliothek oder eine Gruppe von Bibliotheken bilden häufig ein 'Framework' .

Wenn Ihr Code von anderen geschriebenen Code erfordert, können Sie diese mit dem Befehl import in Ihre Klasse importieren. Dieser Befehl alleine reicht jedoch nicht aus, da der Compiler oder IDE muss wissen, wo sich diese Klassen befinden. Sie geben dies im build path an.

Das classpath teilt der JVM, die Ihre Anwendung ausführt, mit, wo Abhängigkeiten während der tatsächlichen Ausführung Ihres Codes zu finden sind.

Auch zu beachten: Klassenpfad wird von der JVM verwendet.

Buildpath wird von der IDE/dem Compiler verwendet und dient zum Erstellen des Klassenpfads aus Ihrer Entwicklungsumgebung. Wenn Sie Ihren Erstellungspfad über Ihre IDE konfigurieren, konfigurieren Sie auch eine versteckte Datei in Ihrem Projekt mit dem Namen .classpath. Dies wird verwendet, um den Klassenpfad für JVM bei der Bereitstellung bereitzustellen.

4
IqbalHamid

build path Wird von IDE während der Kompilierungszeit zum Erstellen eines Projekts verwendet

Environment variable Ist eine globale Systemvariable, auf die alle unter dem Betriebssystem (OS) ausgeführten Prozesse zugreifen können.

PATH und CLASSPATH sind environment variables

PATH: verwaltet eine Liste von Verzeichnissen. Das Betriebssystem durchsucht die PATH -Einträge nach ausführbaren Programmen, z. B. Java Compiler (javac) und Java Runtime (Java).

CLASSPATH: Liste der Verzeichnisse (enthält viele Java class files .class) und JAR-Datei (ein Archiv mit einer einzigen Datei von Java Klassen .jar). Der Java Compiler und Java Runtime durchsucht die CLASSPATH Einträge nach Java Klassen, auf die in Ihrem Programm verwiesen wird.

Suchpfad für Benutzerklassen (kurz CLASSPATH): Wird in der folgenden Reihenfolge festgelegt:

  1. Standardmäßig wird current working directory (.) verwendet.
  2. Einträge in der classpathenvironment variable, Die die Standardeinstellung überschreibt.
  3. Einträge in der Befehlszeilenoption -cp (Oder -classpath), Die die Umgebungsvariable classpath überschreibt.
  4. Die Laufzeitbefehlszeilenoption -jar, Die alle oben genannten Optionen außer Kraft setzt.

Lesen Sie mehr hier

0
yoAlex5