2013-04-25 8 views
21

Was brauche ich für die Umgebungsvariablen JAVA_HOME, M2 und M2_HOME, wenn die Pfade, die dorthin gehen sollten, bereits an meine PATH-Variable angehängt sind?Zweck der JAVA_HOME-, M2- und M2_HOME-Variablen

+2

ich verstehe nicht. Könntest du es bitte versuchen? – radai

+0

Sie werden für andere Anwendungen verwendet, um Ihre Java (oder M2) Installation zu finden, um unter anderem Versionen auf Kompatibilität zu prüfen. –

+0

Wie finden Sie * speziell * JAVA_HOME, M2 und M2_HOME innerhalb der PATH-Variablen? Richtig, andere Programme, die diese spezifischen Informationen benötigen, würden genau das gleiche Problem haben. – BalusC

Antwort

7

JAVA_HOME sollte auf das Verzeichnis verweisen, in dem Java installiert ist, das Sie verwenden möchten. Diese Variable wird oft von verschiedenen Skripten verwendet, daher wird empfohlen, sie zu definieren. JAVA_HOME selbst sollte nicht zu PATH hinzugefügt werden. Sie sollten hinzufügen, um Befehle aus diesem Verzeichnis ausführen zu können, ohne den konkreten Pfad anzugeben.

M2_HOME ist ein Zuhause von Maven. Es wird von Skript mvn (oder mvn.bat unter Windows) verwendet.

+1

Seltsam, warum mvn README nichts über das Setzen dieser Variable während der Installation sagt :( – ACV

+1

@ACV, 'JAVA_HOME' ist eine Umgebungsvariable, erfunden und relevant für JRE. Maven ist ein Build-Tool in Java geschrieben. Normalerweise erwarten wir das nicht Jedes Softwareprodukt, das eine bestimmte Technologie oder Programmiersprache verwendet, erklärt das Wesentliche dieser Technologie in seiner README-Datei. Es ist so, als erwarte ich, dass das Handbuch Ihres Fernsehgeräts eine Einführung in das Ohmsche Gesetz enthält. – AlexR

+0

Lustig, aber soweit ich mich erinnere, "Ohmsches Gesetz "war in älteren Versionen von Maven vorhanden:" 4) Stelle sicher, dass JAVA_HOME auf den Speicherort deines JDK gesetzt ist "http://www-eu.apache.org/dist/maven/maven-3/3.3.9/binaries/ apache-maven-3.3.9-bin.zip Also warum wurde es entfernt? – ACV

7

Die Home-Pfade (JAVA_HOME, M2_HOME) sind nicht obligatorisch, aber gut zu haben. Einer der Vorteile ist:

Es hilft Ihnen, Änderungen an einer Stelle vorzunehmen, anstatt Sie in der Variablen PATH suchen, wenn Sie die nächste Version von Java oder Maven installieren. Zum Beispiel JAVA_HOME Umgebungsvariable unten ist ein Ort, den ich ändern muss, wenn ich es auf Java Development Kit 1.8 aktualisiere.

Windows environment variable window

5

Ich glaube, Sie nicht über ein Konzept der Umgebungsvariable verstehen. Lesen Sie hier ->http://en.wikipedia.org/wiki/Environment_variable

PATH ist eine Umgebungsvariable, die in vielen Betriebssystemen (oder Shells) bekannt ist. Wenn Sie einen Programmnamen ohne vollständigen Pfad eingeben, versucht das Betriebssystem (oder die Shell), alle in der Variablen PATH angegebenen Verzeichnisse zu durchsuchen.

Andere Programme haben unterschiedliche Abhängigkeiten von der Umgebung. Einige von ihnen spezifizieren, welche Umgebungsvariablen sie benötigen, um richtig zu laufen.

wird von vielen Java-basierten Anwendungen verwendet, um den Ort der Java Runtime Environment (JRE) Installation zu definieren.

M2_HOME wird von Maven verwendet, und wiederum sagt es dem Programm, wo Maven-Installation zu finden ist.

PATH ist nicht für diesen Zweck geeignet, da es viele Verzeichnisse enthalten kann, die nicht mit Java oder Maven verwandt sind.

0

Die PATH-Variable wird verwendet, um Anwendungen (ausführbare Dateien und Skripts) und DLLs unter Windows zu finden. Wenn Sie "mvn" eingeben, wird der Pfad verwendet, um eine ausführbare Datei oder ein Skript mit diesem Namen zu suchen. Nur weil das Skript an einem Speicherort gefunden wird, bedeutet dies jedoch nicht, dass die Anwendung in diesem Verzeichnis installiert ist. Das einfachste zu beschreibende Beispiel ist eines, das unter UNIX existiert. Möglicherweise haben Sie eine symbolische Verbindung von/usr/local/bin/mvn zu dem Ort, an dem maven tatsächlich installiert ist. Andere Beispiele/Gründe könnten gegeben werden.

Die Umgebungsvariablen werden von der Anwendung verwendet, um zu wissen, wo nach anderen Ressourcen gesucht werden muss, die die Anwendung möglicherweise benötigt.

Zum Beispiel zeigt JAVA_HOME auf das Verzeichnis, in dem Ihr JDK gefunden werden kann. Wenn JAVA ausgeführt wird, weiß diese Anwendung, dass andere Ressourcen relativ zum JAVA_HOME-Verzeichnis gefunden werden können.

Dadurch kann die Anwendung beispielsweise C: \ Windows \ System32 \ Java in einem Verzeichnis vorhanden sein, die JDK-Installation jedoch anderswo.

Dasselbe gilt für das Verzeichnis M2_HOME, das auf das oberste Verzeichnis verweist, in dem MAVEN "installiert" (oder entpackt) ist.

Das M2-Verzeichnis gibt der Maven-Anwendung (mvn) an, wo die Maven-Repositories zu finden sind, die benötigt werden. Der Standardwert (unter UNIX) ist $ HOME/.m2, aber Sie möchten Ihr Repository möglicherweise nicht dort haben, sodass Sie mit der Umgebungsvariable M2 einen anderen Speicherort angeben können. Maven verwendet diesen Speicherort anstelle des Standardverzeichnisses.