Comment configurer java_home sur Windows 7?

422

Je suis allé aux variables d'environnement dans «Système» dans le panneau de configuration et j'ai créé deux nouvelles variables, une pour les variables utilisateur et une pour les variables système. Les deux ont été nommés JAVA_HOME et pointent tous les deux vers

C: \ Sun \ SDK \ jdk \ bin

Mais pour une raison quelconque, j'obtiens toujours l'erreur ci-dessous lors de l'exécution d'une commande Java ...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

Comment puis-je résoudre ce problème?

Derek
la source
3
Vous avez fermé cmd et l'avez rouvert? De plus, il semble que vous soyez dirigé vers le JRE et non le JDK. Avez-vous installé le JDK?
colère
J'ai définitivement installé le JDK et il se trouve dans C: \ Sun \ SDK \ jdk \ bin sur lequel j'ai défini java_home.
Derek
J'ai même redémarré ......... plusieurs fois depuis ........
Derek
Il semble toujours regarder dans C: \ Program Files \ Java \ jre6 \ lib \ c Pouvez-vous faire echo% JAVA_HOME% dans votre invite de commande et voir ce qu'il rapporte
colère
3
La solution est: Omit / bin
IceFire

Réponses:

673

Trouver le répertoire d'installation de JDK

Vous devez d'abord connaître le chemin d'installation du kit de développement Java.

Ouvrez le chemin d'installation par défaut du JDK:

C:\Program Files\Java

Il devrait y avoir un sous-répertoire comme:

C:\Program Files\Java\jdk1.8.0_172

Remarque: il suffit de mettre le chemin vers le jdk sans / bin à la fin (comme suggéré sur beaucoup d'endroits). par exemple C: \ Java \ jdk1.8.0_172 et PAS C: \ Java \ jdk1.8.0_172 \ bin!


Définissez la variable JAVA_HOME

Une fois que vous avez le chemin d'installation JDK:

  1. Cliquez avec le bouton droit sur l' icône Poste de travail sur votre bureau et sélectionnez Propriétés .
  2. Cliquez sur l' onglet Avancé , puis sur le bouton Variables d'environnement .
  3. Sous Variables système , cliquez sur Nouveau.
  4. Entrez le nom de la variable comme JAVA_HOME .
  5. Entrez la valeur de la variable comme chemin d'installation du kit de développement Java.
  6. Cliquez OK .
  7. Cliquez sur Appliquer les modifications .

Remarque: vous devrez peut-être redémarrer Windows

L'article complet est ici, sur mon blog: Définition de la variable JAVA_HOME dans Windows .

Robs
la source
121
Merci. enfin j'ai réalisé que l'on n'a qu'à mettre le chemin vers le jdk sans / bin à la fin (comme suggéré sur beaucoup d'endroits). par exemple C: \ Java \ jdk1.6.0_31 et PAS C: \ Java \ jdk1.6.0_31 \ bin!
salocinx
24
Dieu ne plaise, il y avait un installateur qui a fait cette étape pour vous :) Je viens de passer de la version Enterprise à la version Community et j'étais convaincu d'avoir téléchargé la mauvaise chose car c'était en un clic sur la version Enterprise: p
John Humphreys - w00te
6
Parfois, les modifications variables du système ne prennent effet qu'au redémarrage des fenêtres.
Andy
11
Une méthode plus rapide consiste à
appuyer
4
/Java/jre*n'est pas le répertoire JDK, c'est le répertoire Java Runtime Enviroment. JDK est dans un répertoire séparé, sauf si vous voulez faire un hack fou
ericn
157

Ce qui a fonctionné pour moi a été d'ajouter la %JAVA_HOME%\binvariable d'environnement Path à la variable d' JAVA_HOMEenvironnement pointant vers le jdkdossier.

brouillard
la source
126

Vous devez d'abord installer JDK dans votre système.

Définir Java Home

JAVA_HOME = C: \ Program Files \ Java \ jdk1.7.0 [Emplacement de votre répertoire d'installation JDK]

Une fois que vous avez le chemin d'installation JDK:

  • Cliquez avec le bouton droit sur l'icône Poste de travail sur
  • Sélectionnez Propriétés.
  • Cliquez sur l'onglet Paramètres système avancés sur le côté gauche de votre écran
  • Un pop-up avancé est ouvert.
  • Cliquez sur le bouton Variables d'environnement.

entrez la description de l'image ici

  • Sous Variables système, cliquez sur Nouveau.
  • Entrez le nom de la variable comme JAVA_HOME.
  • Entrez la valeur de la variable comme chemin d'installation du kit de développement Java.
  • Cliquez sur OK.
  • Cliquez sur Appliquer les modifications.

Définir le chemin JAVA sous la variable système

CHEMIN = C: \ Program Files \ Java \ jdk1.7.0; [Ajouter une valeur avec un point-virgule]

vérifier ici

Ankit jain
la source
14
JAVA_HOME doit-il contenir "\ bin"? D'autres réponses semblent suggérer que "bin" devrait être inclus pour PATH mais pas pour JAVA_HOME.
devuxer
72
JAVA_HOME ne doit PAS contenir \ bin.
Larry Silverman
5
[PLUS ONE] Jolies fleurs!
GingerHead
Mais sur Image, vous entrez avec \ bin.
NaveenDA
32

En cmd (temporairement pour cette fenêtre cmd):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%
sgrillon
la source
2
Vrai. Si vous utilisez, setxle JAVA_HOMEsera toujours défini après l'arrêt de votre ordinateur. Ensuite, vous n'avez pas à le régler à nouveau. N'est binpas non plus nécessaire.
Tenzin
Oui, mais si vous ne voulez pas installer officiellement Java, alors comme l'a dit sgrillon, vous pouvez le configurer temporairement pour cette instance. Mieux encore, créez un fichier batch que vous pouvez exécuter pour ouvrir une fenêtre d'invite de commande et ensemble JAVA_HOME, PATHet CLASSPATH, alors vous pouvez avoir un environnement Java « portable ».
Synetech
C'est vrai mais "" n'est pas nécessaire pour définir l'adresse JAVA_HOME
Aboozar Rajabi
1
@Aboozar Rajabi, Vous avez besoin du chemin "" si ... contient un caractère d'espace.
sgrillon
19

Vous devez le définir sur C:\Sun\SDK\jdk(en supposant que c'est là que le JDK est installé - Ce n'est pas la valeur par défaut) - Ne mettez pas le \ bin dansC:\Sun\SDK\jdk\bin .

Si votre application ne s'exécute que lorsque vous êtes connecté en tant qu'utilisateur actuel, placez-la dans les variables utilisateur - Si elle doit s'exécuter pour tous les utilisateurs de votre système, placez-la dans les variables système.

Vous devrez peut-être également ajouter %JAVA_HOME%\binau chemin également (cela dépend également si vous l'exécutez uniquement à partir de l'utilisateur ou de tous les utilisateurs, y compris le système)

Romain Hippeau
la source
17

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

Panneau de configuration> Java, onglet Java, cliquez sur le bouton Afficher. Dans Paramètres d'exécution, mettez:

-Djava.home=YOUR_PATH_HERE

Ou lorsque vous exécutez Java, vous pouvez ajouter ce commutateur de ligne de commande à la commande:

java -Djava.home=PATH SomeJavaApp
Ricket
la source
Le panneau de contrôle semble ne s'appliquer qu'à la version commerciale de Java. Pas pour la version GPL.
Thomas Weller
7

Pour ceux qui sont toujours perplexes avec ce problème (j'ai essayé toutes les suggestions ci-dessus) -

Si vous utilisez une version 64 bits de Windows et que vous avez installé le JDK 32 bits, outre l'ajustement des PATHvariables, vous devrez peut-être ajuster le registre variables de .

J'arrachais mes cheveux, ayant correctement réglé mes PATHvariables - toujours en vain - et puis ne trouvant que des entrées Java «vides» dans mon registre, apparemment une impasse pour corriger l'environnement d'exécution Java «raté».

En utilisant Process Monitorpour regarder le programme que j'essayais de démarrer, afin de détecter où il cherchait dans le registre Java (Runtime Environment), j'ai découvert triomphalement qu'il cherchait dans la version 32 bits des entrées de registre, trouvées dans HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment.

Dans cette clé, vous devriez trouver des sous-clés de différentes versions de Java installées (passées et / ou présentes). Cliquez sur la sous-clé de la dernière version (ma sous-clé est actuellement 1.7.0_25, par exemple). Après avoir cliqué sur cette sous-clé, vous verrez les valeurs de chaîne de registre répertoriées à droite, et en particulier, JavaHomeet RuntimeLib. Vous devez modifier les valeurs de ces deux valeurs pour refléter le dossier actuel et le fichier jvm.dll, respectivement.

Par exemple, dans mon cas, les valeurs ont été (précédemment) respectivement fixées à C:\Program Files (x86)\Java\jre7et C:\Program Files (x86)\Java\jre7\bin\client\jvm.dllqui sont inexistantes sur ma machine. J'ai dû les mettre à jour dans le dossier et le fichier actuels de C:\Program Files (x86)\Java\jdk1.7.0_25\jreet C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll.

Encore une fois, cela dépendra entièrement de la version de Java (JDK et / ou JRE) que vous avez installée - 32 ou 64 bits - et du type de système d'exploitation sur lequel vous vous trouvez - 32 ou 64 bits. Sachez simplement qu'ils se reflètent à différents endroits du registre (comme leWow6432Node pour les applications 32 bits, dans mon cas avec le JDK 32 bits installé sur une machine 64 bits).

Maintenant que j'ai mis à jour ces deux valeurs de registre, mon programme fonctionne parfaitement, sans plus de hoquets ou de plaintes concernant un environnement d'exécution Java manquant (provenant du registre).

Coldblackice
la source
1
Je suis sur une machine Windows 7 64 bits et j'ai les deux: C: \ Program Files (x86) \ Java \ et C: \ Program Files \ Java \ Maintenant, ma question est celle vers laquelle mon java_home doit-il pointer?
voidMainReturn
Intéressant; Je n'ai que le dossier Java sous le dossier x86.
B. Clay Shannon
Sous C: \ Program Files (x86) \ Java \ jdk1.7.0_25 \ jre \ bin Je n'ai pas de client de répertoire, il n'existe que sous C: \ Program Files (x86) \ Java \ jre7 \ bin. Que devrais-je faire?
Pavol Havlik
Sur Windows 7, après avoir recherché le mot clé "1.8.0_74", j'ai trouvé plusieurs registres à l'aide de regedit dans HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / ou ../1.8.0_65 et tous les autres installés précédemment ... Après avoir supprimé un par un le registre du bas vers mon dernier java 1.8.0_112 installé, le profileur Java YourKit (profiler.exe) fonctionne maintenant sans erreur: "Une erreur s'est produite lors du démarrage de C: \ Program Files \ Java \ jdk1.8.0_74 \ bin \ javaw.exe ".
David
7

Il s'agit de la solution officielle pour configurer l'environnement Java à partir de www.java.com - ici .

Il existe des solutions pour Windows 7, Windows Vista, Windows XP, Linux / Solaris et d'autres shells.


Exemple

Windows 7

  1. Sélectionnez Ordinateur dans le menu Démarrer
  2. Choisissez Propriétés système dans le menu contextuel
  3. Cliquez sur Paramètres système avancés -> onglet Avancé
  4. Cliquez sur Variables d'environnement, sous Variables système, recherchez PATH et cliquez dessus.
  5. Dans les fenêtres d'édition, modifiez PATH en ajoutant l'emplacement de la classe à la valeur de PATH. Si vous ne disposez pas de l'élément PATH, vous pouvez choisir d'ajouter une nouvelle variable et d'ajouter PATH comme nom et l'emplacement de la classe comme valeur.
  6. Rouvrez la fenêtre d'invite de commandes et exécutez votre code Java.
HATCHA
la source
1
Les instructions officielles sont inutiles. Ils ne donnent que des instructions génériques sur la façon de définir les variables d'environnement plutôt que d'indiquer la valeur qui doit être définie. Ils disent simplement de le mettre à «l'emplacement de la classe», ce qui est déroutant et dénué de sens.
Synetech
Ces instructions ne définissent pas JAVA_HOME, une variable entièrement distincte de PATH qui est requise pour certains programmes.
Jules
6

Windows 7

  1. Accédez à Panneau de configuration \ Tous les éléments du Panneau de configuration \ Comptes d'utilisateurs aide de l'Explorateur (pas Internet Explorer!)

    ou

    • cliquez sur le bouton Démarrer

      début

    • cliquez sur votre photo

      clickOnPhoto

  2. Changer mes variables d'environnement

    Changer mes variables d'environnement

  3. Nouveau...

    Nouveau

    (si vous ne disposez pas des autorisations suffisantes pour l'ajouter dans la section Variables système, ajoutez-le à la section Variables utilisateur)

  4. Ajoutez JAVA_HOME comme nom de variable et l'emplacement JDK comme valeur de variable> OK

    modifier la variable système ok

Tester:

  • ouvrir une nouvelle console (cmd)
  • type set JAVA_HOME
    • production attendue: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
ROUMANIE_ingénieur
la source
6

Nous devons faire une distinction entre les deux variables d'environnement qui sont discutées ici de manière interchangeable. L'un est la variable JAVA_HOME . L'autre est la variable Path . Tout processus qui fait référence à la variable JAVA_HOME recherche le chemin de recherche vers le JDK, pas le JRE. L'utilisation de la variable JAVA_HOME n'est pas destinée au compilateur Java lui-même. Le compilateur connaît son propre emplacement. La variable est destinée à d'autres logiciels pour localiser plus facilement le compilateur. Cette variable est généralement utilisée par le logiciel IDE pour compiler et créer des applications à partir du code source Java. En revanche, l'interpréteur Windows CMD et de nombreux autres logiciels tiers et tiers font référence à la variable Path et non à la variable JAVA_HOME.

Cas d'utilisation 1: compilation à partir de CMD

Ainsi, par exemple, si vous n'utilisez aucun logiciel IDE et que vous souhaitez simplement pouvoir compiler à partir du CMD, indépendamment de votre répertoire de travail actuel, ce que vous voulez, c'est définir correctement la variable Path. Dans votre cas, vous n'avez même pas besoin de la variable JAVA_HOME. Parce que CMD utilise Path, pas JAVA_HOME pour localiser le compilateur Java.

Cas d'utilisation 2: compilation à partir d'IDE

Toutefois, si vous êtes utilisez un logiciel IDE, vous devez consulter la documentation avant tout. Il peut nécessiter que JAVA_HOME soit défini, mais il peut également utiliser un autre nom de variable dans le même but. La norme de facto au fil des ans a été JAVA_HOME, mais ce n'est pas toujours le cas.

Cas d'utilisation 3: compilation à partir d'IDE et de CMD

Si, en plus du logiciel IDE, vous souhaitez également pouvoir compiler à partir du CMD, indépendamment de votre répertoire de travail actuel, en plus de la variable JAVA_HOME, vous devrez peut-être également ajouter le chemin de recherche JDK à la variable Path.

JAVA_HOME vs Path

Si votre problème concerne la compilation de Java, vous souhaitez vérifier la variable JAVA_HOME et le chemin (le cas échéant). Si votre problème concerne l'exécution d'applications Java, vous souhaitez vérifier votre variable Path.

La variable de chemin est utilisée universellement sur tous les systèmes d'exploitation. Parce qu'elle est définie par le système et que c'est la variable par défaut utilisée pour localiser le JRE, il n'y a presque jamais de problème lors de l'exécution des applications Java. Surtout pas sous Windows où les installateurs de logiciels configurent généralement tout pour vous. Mais si vous installez manuellement, la chose la plus sûre à faire est peut-être d'ignorer complètement la variable JAVA_HOME et d'utiliser simplement la variable Path pour tout, pour JDK et JRE. Toute version récente d'un logiciel IDE devrait être en mesure de le récupérer et de l'utiliser.

Liens symboliques

Les liens symboliques peuvent fournir un autre moyen de référencer le chemin de recherche JDK en superposant l'une des variables d'environnement existantes.

Je ne suis pas sûr des versions précédentes des versions Oracle / Sun JDK / JRE, mais au moins le programme d'installation de jdk1.8.0_74 ajoute le chemin de recherche C:\ProgramData\Oracle\Java\javapathà la variable Path et le place au début de la valeur de chaîne. Ce répertoire contient des liens symboliques vers java.exe, javaw.exe et javaws.exe dans le répertoire JRE.

Ainsi, au moins avec le Java 8 JDK, et vraisemblablement le Java 8 JRE autonome, aucune configuration de variable d'environnement ne doit être effectuée pour le JRE. Tant que vous utilisez le package d'installation pour le configurer. Il peut cependant y avoir des différences sur votre installation Windows. Notez que Oracle JRE est fourni avec le JDK.

Si vous constatez que votre configuration Java JDK utilise la mauvaise version du compilateur, ou si elle semble fonctionner par magie, sans être explicitement définie (sans lancer le sort), alors vous pouvez avoir un lien symbolique quelque part dans vos variables d'environnement . Donc, vous voudrez peut-être vérifier le lien symbolique.

Samir
la source
5

goto Mycomputer (Ce PC) -> clic droit -> sélectionnez les propriétés -> Paramètres système avancés -> variables d'environnement-> dans les variables système cliquez sur le bouton " Nouveau " et écrivez JAVA_HOME dans le nom de la variable et le chemin C: \ Program Files \ Java \ jdk1. 8.0_131 où jdk est présent dans la valeur de la variable-> cliquez sur ok.

fermez et rouvrez l'invite de commande après avoir défini JAVA_HOME. Parfois, les modifications ne se reflètent pas dans la cmd ouverte avant la définition de JAVA_HOME.

vous pouvez également définir JAVA_HOME via le terminal lui-même: SET JAVA_HOME = "C: \ Program Files (x86) \ Java \ jdk1.8.0_131"

Shreya Sharma
la source
4

Dans Eclipse: Window->Preferences->Java->Installed JREs

Utilisez la fonction de recherche pour vous assurer que votre dernière installation Java est répertoriée; assurez-vous ensuite que c'est celle qui est cochée. Ce doit être un JDK et non un JRE.

Berg
la source
Ces instructions ne définissent pas JAVA_HOME, qui n'est pas lié à l'éclipse.
Jules
4

Lors de l'ajout de votre répertoire Java à votre PATHvariable, vous voudrez peut-être le mettre au début. J'ai eu le problème, que mettre le répertoire Java à la fin du PATHne fonctionnerait pas. Après vérification, j'ai trouvé java.exedans mon Windows\System32répertoire et on dirait que le premier gagne, quand il y a plusieurs fichiers du même nom dans votre PATH...

user2414128
la source
Lorsque / si vous installez Java avec le programme d'installation, il remplacera les copies de java.exeet javaw.exedans les dossiers système par les copies du JRE / JDK, donc cela devrait toujours fonctionner. Si vous l'installez manuellement (décompressez simplement les archives), vous devrez en effet faire attention à la copie en cours d'exécution.
Synetech
Ces instructions ne définissent pas JAVA_HOME, une variable entièrement distincte de PATH qui est requise pour certains programmes.
Jules
3

Exécutez Eclipse en tant qu'administrateur.

Cela a résolu mon problème. Je cherche toujours la logique derrière ça.

muscailie
la source
1
Je ne peux pas dire que je comprends cela exactement, mais peut-être que l'éclipse ne fait que donner le mauvais message d'erreur ici. Lorsque vous l'exécutez en tant qu'administrateur, il ne peut pas supprimer les fichiers .jar ou quelque chose, puis signale à tort qu'il n'a pas trouvé javac. Quoi qu'il en soit, cette solution a fonctionné pour moi aussi.
Jess
si vous exécutez Eclipse dans Windows Server 2012 R2 comme dans mon cas, l'exécution d'Eclipse en tant qu'administrateur fonctionne pour moi. N'oubliez pas également de définir java_home sur le dossier des fichiers programme et non sur le dossier des fichiers programme (86). J'espère que celui-ci aide quelqu'un.
ombiro
2

si vous n'avez pas redémarré votre ordinateur après avoir installé jdk, redémarrez simplement votre ordinateur.

si vous voulez créer un java portable et définir un chemin avant d'utiliser java, créez simplement un fichier batch comme expliqué ci-dessous.

si vous souhaitez exécuter ce fichier de commandes lorsque votre ordinateur démarre, placez simplement votre raccourci de fichier de commandes dans le dossier de démarrage. Dans le dossier de démarrage de Windows 7 est "C: \ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup"

créer un fichier batch comme celui-ci:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

note: java_homeet pathsont des variables. vous pouvez faire n'importe quelle variable comme vous le souhaitez. par exemple set amir=good_boyet vous pouvez voir amir par %amir%ou vous pouvez voir java_home par%java_home%

Amir
la source
0

Après des heures de travail autour de la plupart des solutions ici, le problème a été résolu pour moi simplement en installant un JDK 32 bits.

Vahid Ghadiri
la source
1
Ce qui est bien si c'est ce que vous voulez, mais certaines personnes préfèrent ne pas réellement installer Java et simplement configurer manuellement un environnement «portable», auquel cas, vous devez savoir quelles variables d'environnement doivent être définies.
Synetech
0

Vous pouvez rechercher dans le dossier Windows / System32 les fichiers suivants: - java.exe - javaw.exe - javaws.exe

Parce que la variable path inclut ces fichiers, vous pouvez avoir mal à la tête en essayant de comprendre pourquoi la version java ou la version javac continue de pointer vers l'ancien JAVA_HOME: renommez ces fichiers, supprimez l'extension avec un trait de soulignement, par exemple. Et puis, vous n'aurez qu'à créer la variable JAVA_HOME, l'ajouter à la variable path (par exemple,% JAVA_HOME%) et ajouter la particule "\ bin". De cette façon, vous devez uniquement modifier la variable JAVA_HOME pointant vers différents JRE ou JDK et disposer de plusieurs installations de java simplement en définissant JAVA_HOME.

Cela signifie également qu'il est préférable d'installer Java manuellement, sans programme d'installation, afin que vous puissiez jouer avec.

Camilo
la source