web-dev-qa-db-fra.com

Comment corriger l'erreur maven La variable d'environnement Java_HOME n'est pas définie correctement?

Problème:  

J'obtiens l'erreur Maven "La variable d'environnement Java_HOME n'est pas définie correctement" lorsque j'exécute l'exécution du lot de configuration d'Inno. Cependant, je peux exécuter avec succès en dehors de Inno Setup (p. Ex. Ligne de commande, fichier de traitement par lots, Vbs). Je n'ai aucune idée du problème.

Invite de configuration Inno:

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

Invite de commande régulière:

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 Command de InnoSetup:

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

Maven Command from Batch File:

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

Paramétrage de Java_HOME

Cochez la case Si Java 1.8 est installé ou non. S'il n'est pas installé, installez le même et définissez Java HOME comme suit.

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

Merci beaucoup.

9
i_am_rky

La commande SETX ne modifie pas l'environnement actuel.

Si vous exécutez le fichier de commandes suivant:

setx AAA aaa
echo AAA=%AAA%

Il va imprimer

AAA=

Votre fichier de commandes est donc faux. Vous devez utiliser set:

set AAA=aaa

Voir Quelle est la différence entre SETX et SET dans les variables d’environnement de Windows .

2
Martin Prikryl

Mon JDK est installé à C:\Program Files\Java\jdk1.8.0_144\.
J'avais défini Java_HOME= C:\Program Files\Java\jdk1.8.0_144\, .__ et je recevais cette erreur:

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

Lorsque j'ai changé le Java_HOME en C:\Program Files\Java\jdk1.8.0_144\jre, le problème a été résolu.
Je ne sais pas comment.

16
Koushik

Après est le meilleur moyen d’obtenir le problème, vérifiez le chemin suivant sur classpath:

  1. Assurez-vous que la variable système Java_HOME doit avoir jusqu’à jdk, par exemple C:\Program Files\Java\jdk1.7.0_80, n’ajoutez pas bin ici.

  2. Parce que MAVEN va rechercher jre qui se trouve sous C:\Program Files\Java\jdk1.7.0_80

  3. Définissez% Java_HOME%\bin dans classpath.

Ensuite, essayez la version Maven. 

J'espère que ça va aider.

4
mukesh sharma

J'ai supprimé la variable Java_HOME et n'ai gardé que les variables path et classpath en les pointant vers jdk et jre respectivement. Cela a fonctionné pour moi.

4
Shivakumar

J'étais confronté au même problème lors de l'utilisation de mvn clean package command sous Windows

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

J'ai résolu ce problème en supprimant les variables Java_HOME de Variables utilisateur/Variables système, puis redémarrez l'ordinateur portable, puis définissez à nouveau la variable Java_HOME environnement.

J'espère que cela vous aidera.

2
Prashant Sahoo

J'avais le même problème lorsque ma variable système Java_HOME pointait sur C:\Program Files\Java\jdk1.8.0_171\bin et que mon entrée PATH consistait uniquement en% Java_HOME%.

J'ai modifié ma variable Java_HOME pour exclure le dossier bin (C:\Program Files\Java\jdk1.8.0_171) et ajouté le dossier bin à la variable système PATH:% Java_HOME%\bin,

1
slashNburn

J'ai eu du mal avec le même problème, et ce qui suit a fonctionné pour moi.

Étape 1: Vérifiez votre paramètre Java_HOME. Cela peut ressembler à quelque chose comme:

Java_HOME="/usr/libexec/Java_home"

Étape 2: Mettez à jour Java_HOME comme suit:

$ vim .bash_profile 

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

$ source .bash_profile

Étape 3: dans un nouveau shell, vérifiez que la commande Maven fonctionne désormais correctement:

$ mvn -version

Si cela résout le problème, vous devriez obtenir une réponse du type:

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

J'ai eu le même problème sur 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

La solution s’est révélée très simple: cliquez avec le bouton droit de la souris sur le raccourci clavier de commande et sélectionnez "Exécuter en tant qu’administrateur". Après cela, le problème a disparu)

0
Yurii Koval