web-dev-qa-db-fra.com

Erreur de clé de registre: la version Java a la valeur '1.8', mais '1.7' est requise

En courant 

sencha app build production

Je reçois l'erreur suivante:

Erreur: clé de registre 'Software\JavaSoft\Java Runtime Environnement '\ CurrentVersion'

a la valeur '1.8', mais '1.7' est requis. Erreur: impossible de trouver Java.dll Erreur: impossible de trouver l'environnement d'exécution Java SE.

Java -version, la commande montre ce qui suit:

Version Java "1.8.0_40" Environnement d'exécution Java SE (version 1.8.0_40-b26) Serveur 64 bits Java HotSpot (TM) VM (version 25.40-b25, mode mixte) )

Impossible de trouver où chemin va mal. Une idée?

----------------------- MODIFIER -------------------------- ----------------------

Note : J'utilise Windows 7 (64 bits). 

J'ai essayé de désinstaller et de réinstaller sencha touch cmd. Mais toujours la même erreur.

J'ai désinstallé toutes les instances de la version Java et réinstallé la dernière, Toujours le problème persiste.

70
Anand Gupta

Après avoir essayé plus de cent astuces, finalement obtenu le succès.

J'ai enlevé tous les Java.exe, javaw.exe et javaws.exe de mon

  1. Windows\System32 et

  2. Windows\SysWOW64 dossier. [Essayez l'étape 2 si vous avez un système x64 (Win 7 64 bits)]

240
Anand Gupta
  1. regedit ouvert
  2. aller à [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
  3. changer la valeur CurrentVersion de "1.8" à "1.7"
29
lucken

Dans mon cas (Windows 7 64 bits), je viens de faire ce qui suit:

  • Suppression de la référence à C:\ProgramData\Oracle\Java\javapath; à partir de la variable d'environnement Path
  • Fichiers supprimés Java , javaw et javaws du dossier C:\Windows\System32

Ensuite, j'ai fermé toutes les consoles de ligne de commande ouvertes, les ai rouvertes et exécuté Java -version.

29
aribeiro

re: utilisateurs Windows

Non. Ne supprimez pas la référence d'environnement Javapath de votre variable PATH.

La raison pour laquelle le registre n'a pas fonctionné est que le script Oracle Javapath doit s'exécuter dans la séquence PATH avant les répertoires JRE et JDK - il va résoudre la version actuelle:

mettez ce répertoire au HEAD de votre variable %PATH%:

C:\ProgramData\Oracle\Java\javapath

[ou où que ce soit sur votre bureau]

alors votre PATH ressemblera à quelque chose comme ceci - le mien par exemple

PATH=C:\ProgramData\Oracle\Java\javapath;<other path directories>;E:\Program Files\Java\jdk1.8.0_77\bin;E:\Program Files\Java\jre1.8.0_77\bin

Vous verrez alors la version actuelle correcte:

C:\>Java -version
Java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
18
Andrew

Mon expérience: 

J'utilise Windows 8.1 et j’ai rétrogradé la version Java de la version 1.8 à la version 1.7 et j’obtenais la même erreur.

Erreur: la clé de registre 'Software\JavaSoft\Ja a la valeur' ​​1.7 ', mais' 1.8 'est requise.

J'ai supprimé Java.exe , javaw.exe et javaws.ex e de C:\Windows\System32 et le dossier a fonctionné pour moi.

11
Raj

J'ai eu le même problème. La solution simple qui a fonctionné pour moi est de réorganiser les entrées dans la PATH pour JRE/JDK. Ce problème a commencé à apparaître après l'installation de JRE 8 dont l'installation a placé des fichiers exécutables dans les répertoires System32 or SysWOW64. Pour résoudre le problème:

  1. Créez une variable d’environnement pointant vers la maison JDK sous la forme Java_HOME.

    set Java_HOME=C:\Progra~1\Java\jdk1.8.0_45

  2. Placez l'entrée %Java_HOME%\bin au début dans votre variable d'environnement PATH. Ajout de la valeur existante de PATH. Par exemple: 

    path=C:\Program Files\Java\jdk1.8.0_45\bin;%path%

7
pratikch

L'erreur est explicite ...

Erreur: la clé de registre 'Logiciel\JavaSoft\Environnement d'exécution Java'\CurrentVersion 'a la valeur' ​​1.8 ', mais' 1.7 'est requise.

Erreur: impossible de trouver Java.dll

Erreur: impossible de trouver l'environnement d'exécution Java SE.

... vous essayez d'utiliser l'exécutable Java.exe 1.7 alors que la clé de registre HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment> CurrentVersion a la valeur 1.8.

Le thème récurrent des solutions proposées est que l'erreur est une erreur configuration. L'erreur peut être résolue de différentes manières (par exemple, reconfiguration de l'environnement des utilisateurs ou suppression des exécutables Java avec les doigts croisés et espoir qu'il existe un autre Java.exe de secours dans le %PATH% des utilisateurs et que le Java.exe de repli est l'exécutable correct).

La solution correcte dépend de l'objectif recherché: "essayez-vous de rétrograder de jdk-8 à jdk-7? Essayez-vous de passer à jdk-8? ..."

Étapes de reproduction

  1. installer jdk-7u80-windows-x64.exe

remarques:

  • l'exécutable Java.exe disponible dans les utilisateurs %PATH% est installé dans C:\Windows\System32
  • l'installation ne met pas à jour les utilisateurs %PATH%
  • l'entrée de registre HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment> CurrentVersion string est créée (entre autres) avec la valeur 1.7
  1. installer jdk-8u191-windows-x64.exe

remarques:

  • l'utilisateur %PATH% est mis à jour pour inclure C:\Program Files (x86)\Common Files\Oracle\Java\javapath en tant que première entrée
  • la valeur des entrées de registre HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment> CurrentVersion string est mise à jour à 1.8
  1. mettre à jour la variable d'environnement %PATH% des utilisateurs, supprimer C:\Program Files (x86)\Common Files\Oracle\Java\javapath

  2. dans une nouvelle commande Invite Java -version

Erreur: clé de registre 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion ' a la valeur '1.8', mais '1.7' est requis.

Erreur: impossible de trouver Java.dll

Erreur: impossible de trouver l'environnement d'exécution Java SE.

Solutions)

  1. La solution de l'OP https://stackoverflow.com/a/29769311/1423507 est une approche "croisée des doigts et espérons qu'il existe un Java.exe de repli dans le %PATH% des utilisateurs et que l'exécutable de repli est correct" à l'erreur. Étant donné les étapes de reproduction, supprimer les exécutables Java.exe, javaw.exe et javaws.exe de C:\Windows\System32 (uniquement dans mon cas) aura pour résultat qu'il n'y aura plus de Java.exe dans les utilisateurs %PATH%, ce qui entraînera l'erreur 'Java' is not recognized as an internal or external command, operable program or batch file. qui n'est pas vraiment une solution.

  2. answers https://stackoverflow.com/a/35775493/1423507 et https://stackoverflow.com/a/36516620/1423507 work de quelque manière que vous reveniez à utiliser le Java.exe 1.7 (par exemple, mettez à jour le La valeur de la clé de registre CurrentVersion doit correspondre à la version de Java.exe trouvée dans le %PATH% des utilisateurs.

  3. assurez-vous queJava.exe 1.8 est le premier trouvé dans le %PATH% de l'utilisateur (comment procéder sans importance) i.e .: 

    • mettez à jour les utilisateurs %PATH% pour inclure d'abord C:\Program Files (x86)\Common Files\Oracle\Java\javapath (assurez-vous que les exécutables de ce répertoire sont corrects)
    • mettez à jour les utilisateurs %PATH% pour inclure en premier le chemin absolu de vos fichiers binaires Java (set PATH="C:\Program Files\Java\jre1.8.0_191\bin;%PATH%")
    • définir des variables d'environnement spécifiques à Java et mettre à jour les utilisateurs %PATH% avec eux (set Java_HOME="C:\Program Files\Java"; set JRE_HOME=%Java_HOME%\jre1.8.0_191; set PATH=%JRE_HOME%\bin;%PATH%)
3
masseyb

Je n'ai supprimé aucun des fichiers Java.exe, mais j'ai modifié l'ordre de mon système - la variable "chemin" - afin qu'il reflète% Java_HOME%\bin en tant que première entrée .

2
turnip424

Après la dernière mise à jour automatique de Java, je ne pouvais pas exécuter Java à partir de la commande Invite.

Ma variable de chemin d'accès avait 'C:\ProgramData\Oracle\Java\javapath;'

Je ne pouvais pas cd dans 'C:\ProgramData\Oracle\Java\javapath;' depuis la fenêtre d'invite de commande, puisqu'elle n'existait pas.

J'ai supprimé C:\ProgramData\Oracle\Java\javapath; ' à partir de la variable de chemin d'accès et l'a remplacé par 'C:\Program Files\Java\jre1.8.0_141\bin;'

1
user20150603

Ma solution à ce problème est venue après avoir lu et essayé tout ce qui précède.

Dans mon cas, j'ai essayé de rétrograder Java pour utiliser des impressions dans Apache ActiveMQ. Après avoir désinstallé toutes les versions de Java et nettoyé le registre, la même erreur s'est produite.

Erreur: clé de registre 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion ' a la valeur '1.7', mais '1.8' est requis. "

Dans mon cas, je devais consulter les variables d’environnement, modifier le chemin, ouvrir l’emplacement javapath (C:\ProgramData\Oracle\Java\javapath) et c’était le cas - trois fichiers (Java.exe, javaw.exe, javaws.exe) qui restaient de la version JRE8. 

Après avoir établi ce fait, je les ai simplement échangés avec les mêmes fichiers du répertoire C:\Windows\SysWOW64 (ceux-ci provenaient de la version JRE7) et tout fonctionnait parfaitement.

1
MikeG

Quant à moi sur Win7 64bit.

Copiez le fichier javaws.exe javaw.exe de Java.exe dans le dossier C:\Program Files\Java\jre1.8.0_91\bin to the C:\Windows\System32.

puis ouvrez cmd, tapez Java -version.

C:\Users\HEcom>Java -version
Java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

Avant ce qui précède, assurez-vous que la version actuelle du registre est 1.8

Dans le menu Démarrer, tapez "regedit" pour ouvrir l'éditeur de registre.

  1. Allez à "HKEY_LOCAL_MACHINE" dans le registre de gauche Menu Explorateur/Arborescence
  2. Cliquez sur "LOGICIEL" dans les registres "HKEY_LOCAL_MACHINE".
  3. Cliquez sur "JavaSoft" dans les registres "LOGICIEL".
  4. Cliquez sur "Java Runtime Environment" dans la liste "JavaSoft" des registres Ici, vous pouvez voir différentes versions de Java installé.
  5. Cliquez sur "Java Runtime Environment" - Sur la droite, vous obtiendrez 4-5 lignes. Veuillez sélectionner "CurrentVersion" et cliquer avec le bouton droit de la souris (sélectionnez l'option Modify) pour vous assurer que la version est "1.8"
1
Francis Bacon

Vous devez définir votre dossier jdk dans la variable Java_HOME, Ajouter% Java_HOME% à votre chemin de variable

Supprimer ou changer le nom de votre Java.exe, javaw.exe et javaws dans votre dossier system32 

exécutez cmd.exe, la version Java prend maintenant la nouvelle version que vous définissez dans Java_HOME.

1
smoka

aribeiro answer a fonctionné pour moi - avec des changements mineurs

  • J'ai supprimé la référence à C:\ProgramData\Oracle\Java\javapath; à partir de la variable d'environnement Path
  • J'ai créé/path/to/jdkhome en tant que première entrée de ma variable d'environnement PATH. Je pense que cela seul est tout ce qui est nécessaire.
0
abdel

D'abord, vous devriez avoir Java 7. Si vous ne l'avez pas, installez-le d'abord (je ne sais pas ce que vous utilisez, Linux, Mac, miam, apt, homebrew, vous devriez le découvrir vous-même.)

Si vous avez déjà Java 7, exécutez:

echo $Java_HOME

La sortie devrait ressembler à ceci: /usr/lib/jvm/Java-8-Oracle. Près de ce répertoire, vous devriez voir le répertoire Java-7. Après l'avoir trouvé, lancez 

export Java_HOME=${Java-7-dir}

Changez {Java-7-dir} avec votre chemin de répertoire. Ensuite, vous pouvez exécuter votre commande.

Ce n'est qu'une solution temporaire. Pour le changer définitivement, mettez la commande ci-dessus dans votre fichier ~/.bashrc.

EDIT: Si vous utilisez Windows , remplacez la variable d'environnement Java_HOME par le chemin du répertoire d'installation de Java 7.

0
mtyurt

Modifiez les variables système Java_BIN et Java_HOME, puis redémarrez le système ou reliez-les. Vous rencontrez cette erreur car il s'agit toujours du chemin jdk1.7. Sur Windows, c'est comme ça:  enter image description here

0
Tiina

Il suffit d'installer Java SE Runtime Environment JRE 7!

Vous voyez maintenant "Java 7" et "Java 8" dans "Programmes et fonctionnalités" dans le "Panneau de configuration"

Cela a fonctionné pour moi.

0
Tenesi

Ma courte contribution, pour avoir partagé le même problème avec la version 64 bits de Talend Open Studio.

  1. Lancer le fichier ..\TOS_DI-Win32-20150702_1326-V6.0.0\TOS_DI-win-x86_64.exe manuellement (ne pas associer un menu de démarrage Windows)
  2. et ce message d'erreur de registre apparaît

Pour résoudre ce problème, supprimez tous les fichiers Java.exe, javaw.exe et javaws.exe sur c:\ProgramData\Oracle\Java\javapath \.

et TOS commencent avec la version 64 bits correctement!

0
Undigo Factory

Une solution possible à ce problème consiste à ajouter dans le dossier Sencha CMD un fichier bat comme indiqué sur ce fil Sencha Cmd 5 + Erreur Java 8 .

Le lot aura le nom "sencha.bat" avec ce code:

@echo off
set Java_HOME=<YOUR JDK 7 HOME>
set PATH=%Java_HOME%\bin;%PATH%
set SENCHA_HOME=%~dp0
Java -jar "%SENCHA_HOME%\sencha.jar" %*

Placez-le dans le dossier sencha, dans mon cas c'est

C:\Users\<YOUR USER>\bin\Sencha\Architect\Cmd\6.2.0.103

L'étape suivante consiste à modifier la variable d'environnement PATHEXT. Modifiez les variables utilisateur pour avoir le moins d’impact possible.

Je change de

COM;.CMD;.EXE;.BAT;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

à

COM;.BAT;.EXE;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

L'idée est de faire en sorte que Windows exécute d'abord les fichiers .bat avant les fichiers .exe . C'est important car le dossier sencha contient déjà un fichier "sencha.exe". Et dans la ligne de commande, si vous tapez "sencha", il exécutera "sencha.exe" au lieu de "sencha.bat".

C'était la seule solution qui fonctionnait, car je suis très limité en termes de permissions.

0
Adilson Cabral

Il existe quelque part un autre Java.exe de la version 1.8 de JRE qui se trouve dans "chemin" Vous devriez le trouver et le supprimer si cela est possible. il peut être en tempdata utilisateur pour les applications qui ont besoin de jre. 

0
masoudifar

Supprimez-le du chemin système: 

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

Et cela résoudra le problème de la mise à niveau de la version Java de la version 1.7 à la version 1.8.

0
user5645373

Mon système: - Windows 8.1

Environnements Java

  • C:\JavaEnvironment\Java\jdk1.8.0_161
  • C:\JavaEnvironment\Java\jdk1.7.0_75

J'ai récemment installé Oracle 11g XE et j'ai reçu le message d'erreur mentionné lors de l'accès à la commande "Java" à l'invite de commande.

J'ai vérifié mes variables d'environnement, vérifié la séquence (comme indiqué dans les réponses précédentes) et détecté que la variable système PATH avait l'entrée suivante en tant que première entrée:

C:\OracleDatabase\oraclexe\app\Oracle\product\11.2.0\server\bin; 

J'ai changé la séquence et défini le chemin JDK comme première entrée:

 enter image description here

J'ai répliqué le même changement dans la variable utilisateur: Chemin

 enter image description here

Une fois l'activité ci-dessus terminée, j'ai redémarré la commande Invite et exécuté la commande Java -version. Le problème avait disparu. Il affichait Java 8 comme version actuelle.

0
Philip Dilip

J'ai eu cette erreur sur certains services Windows exécutant Java. Finalement, sur ma machine, j'ai essayé de désinstaller les autres versions de Java.

Je suis parti seulement 1.8 et maintenant tout fonctionne.

0