web-dev-qa-db-fra.com

Impossible d'installer Maven sous Windows: "Java_HOME est défini sur un répertoire non valide"

J'ai suivi le didacticiel Maven à la lettre, mais je ne parviens toujours pas à installer Maven sous Windows.

Lorsque j'exécute l'invite de commande suivante:

E:\Documents and Settings\zach>mvn --version

Je reçois:

'mvn' is not recognized as an internal or external command, operable program or batch file.

J'ai accédé au dossier d’installation de maven et j’ai lancé mvn --version et j'ai:

E:\Java resources\Apache-maven-2.2.0\bin>mvn --version
ERROR: Java_HOME is set to an invalid directory.
Java_HOME = "E:\Sun\SDK\jdk\bin"
Please set the Java_HOME variable in your environment to match the
location of your Java installation

mais quand je cours Java -version Je reçois:

Java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)

Donc, j’ai Java installé. Quelqu'un sait-il quel est le problème?

98

Les problèmes sont liés à vos chemins.

  1. Assurez-vous que le répertoire "E:\Ressources Java\Apache-maven-2.2.0\bin" se trouve sur le chemin de recherche de votre commande.
  2. Assurez-vous que la variable Java_HOME fait référence au répertoire de base de votre installation Java. Si vous exécutez Java de "E:\Sun\SDK\jdk\bin"), la variable Java_HOME doit alors pointer sur "E:\Sun\SDK\jdk".

    NB: Java_HOME ne doit PAS se terminer par "\ bin"1.

  3. Assurez-vous que vous n'avez pas mis de point-virgule dans la variable Java_HOME.2.

    NB: Java_HOME doit être un nom de répertoire unique et non une liste de noms de répertoires "semblable à PATH" séparés par des points-virgules.

Notez également que vous pouvez rencontrer des problèmes si vous avez ignoré ce conseil dans les instructions Maven sous Windows concernant les espaces dans les noms de chemin d'accès de clé.

"Maven, comme de nombreux outils multi-plateformes, peut rencontrer des problèmes lorsqu'il y a des espaces dans les chemins importants ."

"Vous devez installer le Java SDK (à partir du site de téléchargement d’Oracle)) et vous devez l’installer sur un chemin sans espaces , tel que c:\j2se1.6. "'

"Vous devez décompresser la distribution Maven. Ne la décompressez pas au milieu de votre code source; choisissez un emplacement ( sans espaces dans le chemin!! ) et le décompresser là-bas. "

Le remède simple à cela serait de réinstaller Java ou Maven dans un emplacement différent de sorte que ne soit pas a espace dans le chemin


1 - .... sauf si vous avez fait un choix insensé pour le nom de votre emplacement d'installation.

2 - Apparemment, une solution "vaudou" aux problèmes de chemin Windows consiste à frapper un point-virgule à la fin. Il n'est pas recommandé en général, ne fonctionne absolument pas ici.

170
Stephen C

ERREUR: Java_HOME est défini sur un répertoire non valide. Java_HOME = "E:\Sun\SDK\jdk\bin" Veuillez définir la variable Java_HOME de votre environnement pour qu'elle corresponde à l'emplacement de votre Java installation

Java_HOME devrait être réglé sur E:\Sun\SDK\jdk. PATH devrait être configuré pour inclure %Java_HOME%\bin.

29
dfa

J'ai rencontré ce problème avec une installation Grails.

Le problème était mon Java_HOME était c:\Sun\jdk\ et mon CHEMIN a %Java_HOME%bin

Je l'ai changé en: Java_HOME= "c:\Sun\jdk" and PATH="%Java_HOME%\bin"

Cela a fonctionné après cela.

13
L_7337

Je faisais face au même problème et je viens de mettre à jour Java_HOME qui a fonctionné pour moi.

auparavant, il ressemblait à ceci: C:\Program Files\Java\jdk1.6.0_45\bin Il suffit de retirer le\bin et cela a fonctionné pour moi.

10
user3548196

En raison de restrictions de sécurité sur mon lieu de travail actuel, je n’étais pas en mesure de définir des variables d’environnement sur mon ordinateur Windows.

Ma solution de contournement consistait à copier le fichier mvn.bat de% M2% dans C:\WINNT et à ajouter le texte suivant en haut du fichier de traitement par lots:

@REM Needed as unable to set env variables on my desktop PC.

set MAVEN_OPTS=-Xms256m -Xmx1024m
set M2_HOME=C:\Apache-maven-3.0.4
set M2=%M2_HOME%\bin
set Java_HOME=C:\Program Files\Java\jdk1.5.0_15
set PATH=%Java_HOME%\bin;%M2%;%PATH%

Pas la meilleure solution mais ça marche. Si quelqu'un a un autre moyen ou une solution de contournement où les vars standard ne peuvent pas être intégrés au système, je serais heureux de recevoir leur réponse.

4
theINtoy

J'ai eu le même problème et aucune des réponses ci-dessus ne l'a corrigé car mes variables env étaient toutes définies. Je venais de réinstaller mon Java.

Ce qui a fonctionné était de

  1. allez au C:\path\to\Apache-maven-3.0.4\bin et ouvrez le mvn.bat fichier.
  2. Trouvez la ligne qui ressemble à ceci @SET Java_HOME=C:\progra~1\Java\jdk1.7.0_03
  3. Corrigez-le sur le bon chemin

Je ne sais pas si c'est spécifique à Windows, mais cela pourrait aider quelqu'un!

3
codinguser

Après de nombreuses tentatives infructueuses, j'ai trouvé la solution

C'était le ";" à la fin de Java_HOME que je mets toujours à la fin de chaque nouvelle variable que je définis. Alors, débarrassez-vous du.

Java_HOME le définit également dans la variable utilisateur (sans le ";" ofcourse)

2
Chinmoy

Parfois, dans Windows, les espaces dans les chemins ne sont pas reconnus correctement

Si vous avez un problème de chemin et que ce chemin semble

c:\Program Files\....

essayez de le changer dans un ancien format DOS comme

"C:\Progra~1\...

Vous pouvez utiliser dir /x pour vérifier la syntaxe correcte (troisième colonne)

C:\>dir /x ... 11.01.2008 15:47 <DIR> DOCUME~1 Documents and Settings 01.12.2006 09:10 <DIR> MYPROJ~1 My Projects 21.01.2011 14:08 <DIR> PROGRA~1 Program Files ...

Dans mon pc, Java_HOME est (et ça marche)

"C:\Progra~1\Java\jdk1.8.0_121"

Testé sous Windows 10

1
Diego Betto

vous devez définir Java_HOME ou MAVEN_HOME sans répertoire bin, par exemple: - Java_HOME = C:\Fichiers de programme (x86)\Java\jdk1.7.0_45 - MAVEN_HOME = C:\Fichiers de programme (x86)\Apache-maven-3.1.1 maintenant path = .....;% MAVEN_HOME%\bin;% Java_HOME%\bin cela fonctionne correctement

1
Alireza Alallah

Cela semble être un vieux message, mais je voulais tout de même dire comment ce problème avait été résolu pour moi.

Pour les utilisateurs qui n'ont pas d'accès administrateur et qui ouvrent une invite de commande, celle-ci s'exécute sous le privilège d'utilisateur. Cela signifie que vous pouvez avoir un chemin comme C:\Utilisateurs \

par conséquent, lors de l’essai de C:\Utilisateurs\XYZ> mvn --version, le chemin d’accès Java_HOME est recherché dans les variables utilisateur et non les variables système dans les variables d’environnement.

Donc, pour résoudre ce problème, nous devons créer une variable d’environnement pour Java_HOME dans les variables utilisateur.

J'espère que ça aide quelqu'un.

0
Maneshwar

Java_HOME devrait ressembler à ceci C:\PROGRA ~ 1\Java\jdk

J'espère que cela fonctionnera!

0
Debasish Rakshit

Pour exécuter Eclipse et Maven, vous devez stocker deux variables de chemin, une dans votre emplacement jdk1.7_x_x_x et également dans votre jdk1.7_x_x_\bin. Si vous utilisez Windows, dans les variables d’environnement, procédez comme suit:

1) Créez une variable USER appelée Java_HOME. Pointez ceci sur l'emplacement de votre fichier Java. Par exemple: "C:\Program Files\Java\jdk1.7.0_51" (supprimez les guillemets)

2) sous le PATH, ajoutez% Java_HOME% au PATH. Cela ajoutera l'emplacement du fichier de l'étape 1 à votre PATH. C'est bon pour MAVEN

3) si vous utilisez Eclipse, vous devez faire pointer le chemin vers "C:\Program Files\Java\jdk1.7.0_51\bin". Ajoutez maintenant% Java_HOME%\bin à la fin de votre chemin.

4) votre chemin devrait ressembler à ceci: C:\Program Files (x86)\Google\google_appengine \; C:\Utilisateurs\nom_utilisateur\AppData\Roaming\npm;% M2%;% Java_HOME%;% Java_HOME%\bin

Remarques: les éléments inclus dans%%, comme% M2%, sont affectés à des variables. Cela semble redondant mais nécessaire. Vous pouvez confirmer que tout fonctionne en tapant:

Version Java
javac -version
mvn -version

Chacune de ces trois instructions tapées dans l'invite commun ne doit pas renvoyer d'erreurs.

0
Growling Flea

en utilisant Windows 1

Je faisais face à problème .. alors je supprimer Java_HOME variable complètement et juste ajouté% Java_HOME%\bin dans PATH alors cela a fonctionné !!! pour moi

0
Code Spy