Erreur de clé de registre: la version Java a la valeur «1.8», mais «1.7» est requis

91

En courant

sencha app build production

Je reçois l'erreur suivante:

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.

java -version , la commande montre ce qui suit:

java version "1.8.0_40" Java (TM) SE Runtime Environment (build 1.8.0_40-b26) Java HotSpot (TM) 64 bits Server VM (build 25.40-b25, mode mixte)

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

----------------------- ÉDITER -------------------------- ----------------------

Remarque : j'utilise Windows 7 (64 bits).

J'ai essayé de désinstaller le cmd sencha touch et de le réinstaller. 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.

Anand Gupta
la source

Réponses:

291

Après avoir essayé plus d'une centaine d'astuces, j'ai finalement réussi.

J'ai tout enlevé java.exe, javaw.exeet javaws.exede mon

  1. Windows\System32 et

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

Anand Gupta
la source
11
Win 10 utilisateurs 64Bit: la suppression des 3 fichiers System32résoudra le problème.
iTurki
4
Mais nous devons fermer et rouvrir la cmd et taper java -version pour voir les changements ... A fonctionné comme un charme merci!
Cristian B.
1
@SkepticScribbler: Cela se produit lorsque vous confondez java lui-même. Vous essayez d'exécuter une machine virtuelle java 7 où elle a trouvé un JRE 8. Cela peut montrer ce problème même si vous tapez dans la ligne de commande juste java ou java -version dans un environnement mal configuré.
Anand Gupta
@AnandGupta c'est un coup dans le noir, pas une solution - stackoverflow.com/a/53192247/1423507
masseyb
39

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 C: \ Windows \ System32 dossier

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

Aribeiro
la source
J'ai eu ce problème sur Windows 10 lors de l'installation de JDK5u14, JDK6u34, JDK7u51 et JDK8u121 (dans cet ordre). La suppression des fichiers java du dossier Windows n'était pas suffisante. Doit également supprimer le chemin de la variable d'environnement PATH.
euh
32
  1. ouvrir regedit
  2. aller à [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
  3. changer la valeur CurrentVersionde "1,8" à "1,7"
chance
la source
2
Merci. Cela a résolu mon problème. Je n'ai pas l'autorisation de supprimer quoi que ce soit sous SysWOW64. Changer simplement CurrentVersion via regedit a résolu mon problème.
Krish
1
Une solution beaucoup plus simple que d'essayer de supprimer toutes les versions java superflues!
Fred Andrews
.. cependant, cela ne résout rien. Ensuite, l'installateur se plaint et à juste titre, que java 8 est nécessaire.
user508402
Merci, cette solution a fonctionné essayait de résoudre cette erreur pendant longtemps
Abhishek Sawant
19

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 triera la version actuelle:

placez ce répertoire en tête de votre %PATH%variable:

C:\ProgramData\Oracle\Java\javapath

[ou où que ce soit sur votre bureau]

donc 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)
Andrew
la source
Celui-ci fonctionne pour moi. J'ai Windows 7 (64 bits). J'ai déplacé C: \ ProgramData \ Oracle \ Java \ javapath au début de PATH, comme vous l'avez suggéré. Merci!
softwarelover
1
Hé ça a marché! N'oubliez pas de redémarrer votre ordinateur, merci.
Sandoval0992
12

Mon expérience:

J'utilise Windows 8.1 et j'ai rétrogradé la version JAVA de 1.8 à 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 requis.

J'ai supprimé java.exe , javaw.exe et javaws.ex e du dossier C: \ Windows \ System32 et cela a fonctionné pour moi.

RJ_Singh
la source
Cela ne fonctionnera pas s'il y a d'autres exécutables Java pour d'autres versions de Java dans le chemin.
Underverse
9

J'ai eu le même problème. Une solution simple qui a fonctionné pour moi est de réorganiser les entrées dans le PATHpour JRE/JDK. Ce problème a commencé à apparaître après l'installation JRE 8dont l'installation a mis certains fichiers exécutables dans des System32 or SysWOW64répertoires, ces fichiers exécutables sont en train de gâcher. Pour résoudre le problème:

  1. Créez une variable d'environnement pointant vers JDK home en tant que JAVA_HOME.

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

  2. Mettez l'entrée %JAVA_HOME%\binau 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%

pratikch
la source
3
c'est la meilleure solution si vous souhaitez conserver plusieurs versions de java côte à côte et si vous n'avez pas le privilège de modifier le registre et de supprimer des fichiers du dossier windows \ system.
Heinz
3

Je n'ai supprimé aucun des fichiers java.exe, mais j'ai changé l'ordre de mon système - variable "chemin" - afin qu'il reflète% JAVA_HOME% \ bin comme première entrée. Cela a fait l'affaire.

navet424
la source
2

L'erreur est explicite ...

Erreur: la 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.

... vous essayez d'utiliser l' java.exeexécutable 1.7 alors que la clé de registre HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment> CurrentVersiona la valeur 1.8.

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

La bonne solution dépend de ce que vous essayez de réaliser: "essayez-vous de passer de jdk-8 à jdk-7? Essayez de passer à jdk-8? ..."

Étapes de reproduction

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

Remarques:

  • l' java.exeexécutable disponible dans les utilisateurs %PATH%est installé dansC:\Windows\System32
  • l'installation ne met pas à jour les utilisateurs %PATH%
  • l' entrée de registre HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment> CurrentVersionstring est créée (entre autres) avec la valeur1.7
  1. installez jdk-8u191-windows-x64.exe

Remarques:

  • les utilisateurs %PATH%sont mis à jour pour inclure C:\Program Files (x86)\Common Files\Oracle\Java\javapathcomme première entrée
  • la valeur des entrées de registre de la chaîne HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment> CurrentVersionest mise à jour pour1.8
  1. mettre à jour la %PATH%variable d'environnement utilisateurs , supprimerC:\Program Files (x86)\Common Files\Oracle\Java\javapath

  2. dans une nouvelle invite de commande java -version

Erreur: la 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 d'OP https://stackoverflow.com/a/29769311/1423507 est une approche " croisée des doigts et espérons qu'il existe un repli java.exechez les utilisateurs %PATH%et que l'exécutable de secours est correct" pour résoudre l'erreur. Compte tenu des étapes de reproduction, la suppression de java.exe, javaw.exeet des javaws.exeexécutables de C:\Windows\System32(uniquement dans mon cas) entraînera le fait de ne plus avoir de java.exeprésent 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. Les réponses https://stackoverflow.com/a/35775493/1423507 et https://stackoverflow.com/a/36516620/1423507 fonctionnent mais vous revenez à l'utilisation de la version java.exe1.7 (par exemple, mettez à jour la CurrentVersionvaleur de la clé de registre pour qu'elle corresponde à la java.exeversion trouvée dans les utilisateurs %PATH%).

  3. assurez-vous que java.exe1.8 est le premier trouvé dans les utilisateurs %PATH%(la façon dont vous faites cela n'a pas d'importance), c'est-à-dire:

    • mettre à jour les utilisateurs %PATH%pour qu'ils incluent d' C:\Program Files (x86)\Common Files\Oracle\Java\javapathabord (assurez-vous que les exécutables de ce répertoire sont corrects)
    • mettre à jour les utilisateurs %PATH%pour inclure d'abord le chemin absolu de vos binaires java ( set PATH="C:\Program Files\Java\jre1.8.0_191\bin;%PATH%")
    • les variables d'environnement spécifique 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%)
masseyb
la source
@whoever_that_downvotes - cette réponse ne peut être améliorée sans aucun retour constructif. Laissez un commentaire sur «pourquoi» et pourriez être en mesure d'améliorer cette réponse pour le bénéfice de la communauté.
masseyb
2

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

Je n'ai laissé que 1,8 et maintenant tout fonctionne.

Menios
la source
1

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 comme première entrée dans ma variable d'environnement PATH. Je pense que cela suffit à lui seul.
abdel
la source
1

Quant à moi sur win7 64bit.

Copiez le java.exe javaw.exe javaws.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 START, tapez "regedit" pour ouvrir l'éditeur de registre

  1. Accédez à "HKEY_LOCAL_MACHINE" dans le menu de l'explorateur / arborescence de registre de gauche
  2. Cliquez sur "SOFTWARE" dans les registres "HKEY_LOCAL_MACHINE"
  3. Cliquez sur "JavaSoft" dans les registres "SOFTWARE"
  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 le côté droit, vous obtiendrez 4-5 lignes. Veuillez sélectionner "CurrentVersion" et faites un clic droit (sélectionnez l'option de modification) assurez-vous que la version est "1.8"
Francis Bacon
la source
C'est une très mauvaise idée. Le dossier binaires doit être ajouté au chemin au lieu de déplacer les fichiers vers un dossier déjà dans le chemin. Cela peut causer un horrible mal de tête si quelqu'un d'autre doit mettre à jour java sur le système et n'a pas connaissance de cette «solution». Et c'est exactement la source du problème de l'op ... Fixez plutôt votre chemin.
Riwels
Changez I just MOVE en I just COPY et vous serez prêt à partir.
Matthieu
1

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 au format Apache ActiveMQ. Après avoir désinstallé toutes les versions de Java et nettoyé le registre, j'obtenais la même erreur

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

Dans mon cas , je devais aller à des variables d'environnement, le chemin d'édition, ouvre l'emplacement de javapath ( C:\ProgramData\Oracle\Java\javapath) et il était - 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 C:\Windows\SysWOW64répertoire (ceux-ci provenaient de la JRE7version) et tout a parfaitement fonctionné.

MikeG
la source
1

Après la dernière mise à jour automatique de Java, je n'ai pas pu exécuter Java à partir de l'invite de commande.

Ma variable de chemin avait 'C: \ ProgramData \ Oracle \ Java \ javapath;'

Je n'ai pas pu accéder à 'C: \ ProgramData \ Oracle \ Java \ javapath;' à partir de la fenêtre d'invite de commande, car il n'existait pas.

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

utilisateur20150603
la source
C'est bien plus un commentaire qu'une réponse. La question porte sur un outil très spécifique et indique très clairement que java est en fait trouvé.
GhostCat
1

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

Supprimez ou modifiez le nom de votre java.exe, javaw.exe et javaws dans votre dossier system32

exécutez cmd.exe, java -version prend maintenant la nouvelle version que vous définissez dans JAVA_HOME.

El mehdi AZROUR
la source
1

En plus de la réponse d'Anand Gupta, assurez-vous qu'aucun autre java à l'exception de celui dont vous avez besoin n'est utilisé. Exécutez which java( where javapour Windows) et voyez quels exécutables java sont utilisés. Supprimez simplement ceux que vous ne souhaitez pas utiliser et si celui dont vous avez besoin n'est pas présent, ajoutez-le à PATH.

Sergey K.
la source
0

Tout 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, yum, apt, homebrew, vous devriez le découvrir vous-même.)

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

echo $JAVA_HOME

Devrait être quelque chose comme sortie ceci: /usr/lib/jvm/java-8-oracle. Près de ce répertoire, vous devriez voir le java-7répertoire. Après l'avoir trouvé, exécutez

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 ~/.bashrcfichier.

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

mtyurt
la source
@AnandGupta J'ai ajouté un cas Windows.
mtyurt
Dans le cas de Linux, vous devez fournir le chemin du binaire Java dans JAVA_HOME. Par exemple, /usr/java/jdk1.5.0_07/bin/java. Dans le cas de Windows, seul le répertoire d'installation devrait faire l'affaire.
Aditya K
0

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

  1. Lancer .. \ TOS_DI-Win32-20150702_1326-V6.0.0 \ TOS_DI-win-x86_64.exe manuellement (ne pas lier 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 démarre correctement avec la version 64 bits!

Usine d'Undigo
la source
0

Supprimez-le du chemin système:

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

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

user5645373
la source
1
Pouvez-vous nous dire pourquoi?
Vinay Prajapati
0

Il existe quelque part un autre java.exe de la version jre 1.8 qu'il est dans "chemin", vous devriez le trouver et le supprimer si c'est possible. il peut être dans les données temporaires de l'utilisateur pour les applications qui nécessitent jre.

masoudifar
la source
0

Veuillez modifier les variables système JAVA_BIN et JAVA_HOME, puis redémarrer le système ou peut-être vous reconnecter. Vous rencontrez cette erreur car il s'agit toujours du chemin jdk1.7. Sur Windows, c'est comme ça: entrez la description de l'image ici

Tiina
la source
0

Installez simplement 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.

Tenesi
la source
0

Une solution possible à ce problème consiste à ajouter au dossier Sencha CMD un fichier chauve-souris comme suggéré à ce fil Sencha Cmd 5 + Java 8 Error .

Le lot portera 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 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 exécuter les fichiers .bat par Windows avant les fichiers .exe. Ceci 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 matière d'autorisations.

Adilson Cabral
la source
0

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 mentionné dans les réponses précédentes) et détecté que ma variable système PATH avait l'entrée suivante comme 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:

entrez la description de l'image ici

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

entrez la description de l'image ici

Après avoir terminé l'activité ci-dessus, j'ai redémarré l'invite de commande et exécuté la commande java -version et le problème avait disparu. Il affichait Java 8 comme version actuelle.

Philippe Dilip
la source
-1

J'ai eu le même problème. Le déplacement du chemin JDK et JRE en haut de la variable de chemin a résolu le problème (qui a la priorité sur ce qui est présent sous System32)

Par exemple, voici le mien:

entrez la description de l'image ici

Ramesh
la source
-2

Désinstallez Java 8 de votre liste de programmes. EN suivant les étapes ci-dessous: -

Depuis votre bureau, cliquez sur le menu Démarrer (ou Démarrer la balle) en bas à gauche de votre écran. Accédez au panneau de configuration. Cliquez sur Programmes et fonctionnalités. Sélectionnez Java8 et cliquez sur Désinstaller

verma nitrique
la source
-2

Tuez toutes les applications liées à java dans le gestionnaire de tâches, puis supprimez Java.exe, Javaw.exe et Jawaws.exe de C: \ windows \ System32

Cela devrait résoudre votre problème... :)

Brijesh Rana
la source
pouvez-vous expliquer clairement comment cela résoudrait le problème en question?
Muhammad Mamoor Khan
-3

vient de faire ça et ça a marché

HKLM> LOGICIEL> JavaSoft> Environnement d'exécution Java

il suffit de changer manuellement la version actuelle en 1.7.

lol ... mais ça a marché!

utilisateur6180925
la source