webentwicklung-frage-antwort-db.com.de

Wie kann ich einen Maven-Fehler beheben? Die Java_HOME-Umgebungsvariable ist nicht richtig definiert?

Problem:  

Ich erhalte den Maven-Fehler "Die Java_HOME-Umgebungsvariable ist nicht korrekt definiert", wenn ich die Inno-Setup-Stapelverarbeitung durchführe. Ich kann jedoch auch außerhalb von Inno Setup erfolgreich ausgeführt werden (z. B. Befehlszeile, Batchdatei, Vbs). Ich bin ratlos, das Problem zu identifizieren.

Inno-Setup-Eingabeaufforderung:

C:\>mvn -version
The Java_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: Java_HOME should point to a JDK not a JRE

Reguläre Eingabeaufforderung:

C:\>mvn -version
C:\
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T01:09:06+05:30)
Maven home: C:\Program Files\Apache-maven-3.5.0\bin\..
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_131\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", Arch: "AMD64", family: "windows"

Maven Befehl von InnoSetup:

[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""

Maven-Befehl aus der Batchdatei:

mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Java_HOME einstellen

Überprüfen Sie, ob Java 1.8 installiert ist oder nicht. Falls nicht installiert, installieren Sie dasselbe und legen Sie Java HOME wie folgt fest.

SETX Java_HOME "C:\Program Files\Java\jdk1.8.0_131"
SETX -m Java_HOME "C:\Program Files\Java\jdk1.8.0_131"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%path%;C:\Program Files\Java\jdk1.8.0_131\bin;" /f

Danke vielmals.

9
i_am_rky

Der Befehl SETX ändert die aktuelle Umgebung nicht.

Wenn Sie die folgende Batchdatei ausführen:

setx AAA aaa
echo AAA=%AAA%

Es wird gedruckt

AAA=

Ihre Batchdatei ist also falsch. Sie müssen set verwenden:

set AAA=aaa

Siehe Was ist der Unterschied zwischen SETX und SET bei Umgebungsvariablen in Windows .

2
Martin Prikryl

Mein JDK ist unter C:\Program Files\Java\jdk1.8.0_144\ installiert.
Ich hatte Java_HOME= C:\Program Files\Java\jdk1.8.0_144\, Eingestellt und diese Fehlermeldung wurde angezeigt:

The Java_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: Java_HOME should point to a JDK not a JRE

Wenn ich Java_HOME in C:\Program Files\Java\jdk1.8.0_144\jre änderte, wurde das Problem behoben.
Ich bin nicht sicher, wie.

16
Koushik

Im Folgenden finden Sie die beste Methode, um das Problem zu beheben. Überprüfen Sie Folgendes im Klassenpfad:

  1. Stellen Sie sicher, dass die Java_HOME-Systemvariable bis jdk vorhanden sein muss, z. B. C:\Programme\Java\jdk1.7.0_80. Fügen Sie hier keine Bin an.

  2. Weil MAVEN nach jre suchen wird, das sich unter C:\Programme\Java\jdk1.7.0_80 befindet

  3. Legen Sie im Klassenpfad% Java_HOME%\bin fest.

Dann probieren Sie die Maven-Version. 

Ich hoffe es wird helfen.

4
mukesh sharma

Ich habe die Java_HOME-Variable entfernt und nur die Pfad- und Klassenpfadvariablen beibehalten, indem ich sie auf jdk und jre verweise. Es hat für mich funktioniert.

4
Shivakumar

Bei der Verwendung des Befehls " mvn clean package " unter Windows war das gleiche Problem aufgetreten

C:\Eclipse_workspace\my-sparkapp>mvn clean package
The Java_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: Java_HOME should point to a JDK not a JRE

Ich habe dieses Problem durch Löschen der Java_HOME - Umgebungsvariablen aus Benutzervariablen/Systemvariablen behoben. Starten Sie dann den Laptop neu und setzen Sie anschließend die Java_HOME - Umgebungsvariable erneut.

Ich hoffe es wird dir helfen.

2
Prashant Sahoo

Das Festlegen des Java_HOME-Verzeichnisses über die Befehlszeile hat bei mir funktioniert!

Zuerst:

Java_HOME="C:\Program Files\Java\jdk1.8.0"

Oder :

export Java_HOME="C:\Program Files\Java\jdk1.8.0"

Dann versuche es:

mvn -version

um sicherzustellen, dass Sie nicht den gleichen Fehler erhalten. :)

2
Dicle

Ich hatte das gleiche Problem, während meine Java_HOME-Systemvariable auf C:\Programme\Java\jdk1.8.0_171\bin zeigte und mein PATH-Eintrag nur aus% Java_HOME% bestand.

Ich habe meine Java_HOME-Variable geändert, um den bin-Ordner (C:\Programme\Java\jdk1.8.0_171) auszuschließen, und habe den bin-Ordner der System-PATH-Variablen hinzugefügt:

1
slashNburn

Ich hatte Probleme mit dem gleichen Thema, und die folgenden arbeiteten für mich.

Schritt 1: Überprüfen Sie Ihre Java_HOME-Einstellung. Es kann ungefähr so ​​aussehen:

Java_HOME="/usr/libexec/Java_home"

Schritt 2: Aktualisieren Sie Java_HOME wie folgt:

$ vim .bash_profile 

export Java_HOME=$(/usr/libexec/Java_home)

$ source .bash_profile

Schritt 3: Überprüfen Sie in einer neuen Shell, ob der Befehl Maven jetzt ordnungsgemäß funktioniert:

$ mvn -version

Wenn das Problem dadurch behoben wurde, erhalten Sie eine Antwort wie:

Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)
Maven home: /usr/share/maven
Java version: 1.7.0_05, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.2", Arch: "x86_64", family: "mac"
0
d_dawg

Ich hatte das gleiche Problem unter Windows 7.

The Java_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: Java_HOME should point to a JDK not a JRE

Die Lösung erwies sich als sehr einfach - klicken Sie mit der rechten Maustaste auf die Befehlsaufforderung und wählen Sie "Als Administrator ausführen". Danach ist das Problem verschwunden)

0
Yurii Koval

Wenn alle guten und noch vor "Java_HOME" stehenden Dateien auf ein JDK - und kein JRE - Problem hinweisen sollten, überprüfen Sie einmal die Benutzervariablen Java config und Systemvariablen Java config. This löste mein Problem.

0
amitkumar singh

Unter Windows funktioniert es nicht, wenn sich im Pfad zu jdk ein Speicherplatz befindet ("C:\Programme\jdk"). Wenn wir jdk jedoch an einem Ort aufbewahren, an dem kein Speicherplatz vorhanden ist, funktioniert es einwandfrei wie ("C:\jdk")

0
Sushant