Ключ реестра Ошибка: версия Java имеет значение "1,8", но требуется "1,7"
Во время бега
sencha app build production
Я получаю следующую ошибку:
Ошибка: ключ реестра 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
имеет значение "1,8", но требуется "1,7". Ошибка: не удалось найти java.dll Ошибка: не удалось найти среду выполнения Java SE.
java -version
, команда показывает следующее:
Java-версия "1.8.0_40" Java(TM) SE Runtime Environment (сборка 1.8.0_40-b26) Java HotSpot(TM) 64-разрядная серверная виртуальная машина (сборка 25.40-b25, смешанный режим)
Не в состоянии найти, где путь идет не так, как надо. Любая идея?
----------------------- РЕДАКТИРОВАТЬ -------------------------- ----------------------
Примечание: я использую Windows 7 (64 бит).
Я попытался удалить Sencha Touch CMD и переустановить. Но все та же ошибка.
Я удалил все экземпляры Java-версии и переустановил последнюю, проблема остается.
30 ответов
Перепробовав более сотни трюков, наконец-то добился успеха.
Я удалил все java.exe
, javaw.exe
а также javaws.exe
от моего
Windows\System32
а такжеWindows\SysWOW64
папка. [Попробуйте шаг 2, если у вас система x64 (Win 7 64 бит)]
В моем случае (Windows 7 64-bit) я просто сделал следующее:
- Удалена ссылка на C:\ProgramData\Oracle\Java\javapath; из переменной окружения Path
- Удалены файлы java, javaw и javaws из папки C:\Windows\System32
После этого я закрыл все открытые консоли командной строки, снова открыл их и запустил Java -версию.
- открытое regedit
- идти к
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
- изменить значение
CurrentVersion
от "1,8" до "1,7"
Re: пользователи Windows
Нет. Не удаляйте ссылку на среду Javapath из переменной PATH.
Причина, по которой реестр не работал, заключается в том, что сценарий Oracle Javapath должен выполняться в последовательности PATH перед каталогами JRE & JDK - он будет сортировать текущую версию:
поместите этот каталог в ГОЛОВУ вашего %PATH%
переменная:
C:\ProgramData\Oracle\Java\javapath
[или где бы он ни был на вашем рабочем столе]
так что ваш PATH будет выглядеть примерно так - мой например
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
Затем вы увидите правильную текущую версию:
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)
Мой опыт:
Я использую Windows 8.1, и я снизил версию JAVA с 1.8 до 1.7, и я получил ту же ошибку.
Ошибка: ключ реестра 'Software \ JavaSoft \ Ja имеет значение' 1,7 ', но требуется' 1,8'.
Я удалил java.exe, javaw.exe и javaws.ex e из папки C:\Windows\System32, и это сработало для меня.
У меня была такая же проблема. Простое решение, которое сработало для меня, состоит в перестановке записей в PATH
за JRE/JDK
, Эта проблема начала появляться после установки JRE 8
чья установка поместила некоторые исполняемые файлы в System32 or SysWOW64
каталоги, эти исполняемые файлы портятся. Чтобы решить проблему:
Создайте переменную окружения, указывающую на JDK home как
JAVA_HOME
,set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_45
Поставить запись
%JAVA_HOME%\bin
при запуске в вашей переменной окружения PATH. Добавление существующего значенияPATH
, Например:path=C:\Program Files\Java\jdk1.8.0_45\bin;%path%
Я не удалял ни один из файлов java.exe, но изменил порядок в моей Системе - переменную "path", чтобы она отражала%JAVA_HOME%\bin в качестве первой записи. Это добилось цели.
У меня была эта ошибка в некоторых службах Windows, работающих под управлением Java. В конце концов, на моей машине я попытался удалить другие версии Java.
Я оставил только 1,8 и теперь все работает.
Ошибка явная...
Ошибка: ключ реестра 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'имеет значение'1,8', но требуется'1,7'.
Ошибка: не удалось найти java.dll
Ошибка: не удалось найти среду выполнения Java SE.
... вы пытаетесь использовать java.exe
1.7 в то время как HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment
> CurrentVersion
ключ реестра имеет значение 1.8.
Повторяющаяся тема предлагаемых решений заключается в том, что ошибка является ошибкой конфигурации. Ошибка может быть решена различными способами (например, реконфигурирование среды пользователя или удаление исполняемых файлов Java со скрещенными пальцами и надежда, что существует другой запасной вариант java.exe
в пользователях %PATH%
и что запасной вариант java.exe
это правильный исполняемый файл).
Правильное решение зависит от того, чего вы пытаетесь достичь: "пытаетесь ли вы перейти с jdk-8 на jdk-7? Пытаетесь перейти на jdk-8? ..."
Шаги воспроизведения
- установить jdk-7u80-windows-x64.exe
заметки:
java.exe
исполняемый файл доступен пользователям%PATH%
установлен вC:\Windows\System32
- установка не обновляет пользователей
%PATH%
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
>CurrentVersion
Строка реестра создается (среди прочих) со значением1.7
- установить jdk-8u191-windows-x64.exe
заметки:
- пользователи
%PATH%
обновляется, чтобы включитьC:\Program Files (x86)\Common Files\Oracle\Java\javapath
как первая запись- the
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
>CurrentVersion
Значение записи в реестре строк обновляется до1.8
обновить пользователей
%PATH%
переменная окружения, удалитьC:\Program Files (x86)\Common Files\Oracle\Java\javapath
в новой командной строке
java -version
Ошибка: ключ реестра 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'имеет значение'1,8', но требуется'1,7'.
Ошибка: не удалось найти java.dll
Ошибка: не удалось найти среду выполнения Java SE.
Решение (s)
Решение ОП /questions/32631577/klyuch-reestra-oshibka-versiya-java-imeet-znachenie-18-no-trebuetsya-17/32631594#32631594 - это "скрещенные пальцы" и надежда, что существует запасной вариант
java.exe
в пользователях%PATH%
и что резервный исполняемый файл является правильным "подход к ошибке. Учитывая шаги воспроизведения, удалениеjava.exe
,javaw.exe
а такжеjavaws.exe
исполняемые файлы изC:\Windows\System32
(только в моем случае) больше не будетjava.exe
присутствует в пользователях%PATH%
в результате чего ошибка'java' is not recognized as an internal or external command, operable program or batch file.
что не так уж много решения.ответы /questions/32631577/klyuch-reestra-oshibka-versiya-java-imeet-znachenie-18-no-trebuetsya-17/32631586#32631586 и /questions/32631577/klyuch-reestra-oshibka-versiya-java-imeet-znachenie-18-no-trebuetsya-17/32631597#32631597 работают, однако вы возвращаетесь к использованию
java.exe
1,7 (например, обновитьCurrentVersion
значение ключа реестра, чтобы соответствоватьjava.exe
версия найдена в пользователях%PATH%
).удостовериться
java.exe
1.8 - первый найденный у пользователей%PATH%
(как вы делаете это не имеет значения) т.е.- обновить пользователей
%PATH%
включатьC:\Program Files (x86)\Common Files\Oracle\Java\javapath
сначала (убедитесь, что исполняемые файлы в этом каталоге правильные) - обновить пользователей
%PATH%
сначала включить абсолютный путь к вашим двоичным файлам Java (set PATH="C:\Program Files\Java\jre1.8.0_191\bin;%PATH%"
) - установить конкретные переменные среды Java и обновить пользователей
%PATH%
с ними (set JAVA_HOME="C:\Program Files\Java"
;set JRE_HOME=%JAVA_HOME%\jre1.8.0_191
;set PATH=%JRE_HOME%\bin;%PATH%
)
- обновить пользователей
После последнего автоматического обновления Java я не смог запустить Java из командной строки.
Моя переменная пути имела "C:\ProgramData\Oracle\Java\javapath;"
Я не мог перейти в 'C:\ProgramData\Oracle\Java\javapath;' из окна командной строки, так как он не существует.
Я удалил C:\ProgramData\Oracle\Java\javapath; ' из переменной пути и заменил ее на "C:\Program Files\Java\jre1.8.0_141\bin;"
Мое решение этой проблемы пришло после прочтения и пробования всего вышеперечисленного.
В моем случае я пытался понизить Java, чтобы использовать распечатки в Apache ActiveMQ
, После удаления всех версий Java и очистки реестра я получил ту же ошибку
Ошибка: ключ реестра 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'имеет значение'1,7 ', но требуется'1,8 '. "
В моем случае мне нужно было перейти к переменным окружения, отредактировать путь, открыть местоположение javapath (C:\ProgramData\Oracle\Java\javapath
) и там это было - три файла (java.exe
, javaw.exe
, javaws.exe
) что осталось от версии JRE8.
После установления этого факта я просто переключил их с теми же файлами из C:\Windows\SysWOW64
каталог (это были из JRE7
версия) и все заработало отлично.
Ответ aribeiro сработал для меня - с небольшими изменениями
- Я удалил ссылку на C:\ProgramData\Oracle\Java\javapath; из переменной окружения Path
- Я сделал /path/to/jdkhome как первую запись в моей переменной окружения PATH. Я думаю, что только это все, что нужно.
Вы должны определить папку jdk в переменной JAVA_HOME, добавить%JAVA_HOME% в путь переменной
Удалите или измените имя вашего java.exe, javaw.exe и javaws в вашей папке system32
выполнить cmd.exe, java -version теперь взять новую версию, которую вы определили в JAVA_HOME.
В дополнение к ответу Ананда Гупты убедитесь, что не используется никакая другая java, кроме той, которая вам нужна. Пробегwhich java
(where java
для Windows) и посмотрите, какие исполняемые файлы Java используются. Просто удалите те, которые вы не хотите использовать, а если нужного вам нет, добавьте его в PATH.
Что касается меня на win7 64bit.
Скопируйте java.exe javaw.exe javaws.exe в папку C:\Program Files\Java\jre1.8.0_91\bin to the C:\Windows\System32.
и затем откройте cmd, введите 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)
Перед этим убедитесь, что CurrentVersion реестра равен 1,8
В меню "ПУСК" введите "regedit", чтобы открыть редактор реестра.
- Перейдите к "HKEY_LOCAL_MACHINE" в левом меню просмотра / дерева реестра.
- Нажмите "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ" в реестрах "HKEY_LOCAL_MACHINE"
- Нажмите "JavaSoft" в реестре "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ".
- Нажмите "Java Runtime Environment" в списке "JavaSoft" реестров, здесь вы можете увидеть различные версии установленного Java
- Нажмите "Java Runtime Environment"- с правой стороны вы получите 4-5 строк. Пожалуйста, выберите "CurrentVersion" и щелкните правой кнопкой мыши (выберите изменить вариант), чтобы убедиться, что версия "1.8"
Удалите его из системного пути:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
И это решит проблему при обновлении версии Java с 1.7 до 1.8
Просто установите Java SE Runtime Environment JRE 7!
Теперь вы видите "Java 7" и "Java 8" в "Программы и компоненты" в "Панели управления"
Это сработало для меня.
Сначала у вас должна быть Java 7. Если у вас ее нет, сначала установите ее (я не знаю, что вы используете, Linux, Mac, yum, apt, homebrew, вы должны узнать сами).
Если у вас уже есть Java 7, запустите:
echo $JAVA_HOME
Вывод должен быть примерно таким:/usr/lib/jvm/java-8-oracle
, Рядом с этим каталогом вы должны увидеть java-7
каталог. После того как вы нашли его, запустите
export JAVA_HOME=${java-7-dir}
+ Изменить {java-7-dir}
с вашим путем к каталогу. Тогда вы можете запустить свою команду.
Это только временное решение. Чтобы изменить его навсегда, введите приведенную выше команду ~/.bashrc
файл.
РЕДАКТИРОВАТЬ: Если вы используете Windows, измените переменную среды JAVA_HOME
к вашему пути установки каталога Java 7.
Мой короткий вклад, для того, чтобы поделиться той же проблемой с 64-битной версией Talend Open Studio.
- Запустите..\TOS_DI-Win32-20150702_1326-V6.0.0\TOS_DI-win-x86_64.exe вручную (не связывайте меню запуска Windows)
- и это сообщение об ошибке реестра появляется
Чтобы решить эту проблему, удалите все файлы java.exe, javaw.exe и javaws.exe в каталоге c:\ProgramData\Oracle\Java\javapath\
и TOS правильно начать с 64-битной версии!
Одним из возможных решений этой проблемы является добавление в папку Sencha CMD файла bat, как предложено в этой теме. Sencha Cmd 5 + Java 8 Error.
Пакет будет иметь имя "sencha.bat" с этим кодом:
@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" %*
Поместите его в папку sencha, в моем случае это
C:\Users\<YOUR USER>\bin\Sencha\Architect\Cmd\6.2.0.103
Следующим шагом является изменение переменной окружения PATHEXT. Изменяйте пользовательские переменные, чтобы иметь как можно меньшее влияние.
Я меняю с
COM;.CMD;.EXE;.BAT;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
в
COM;.BAT;.EXE;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
Идея состоит в том, чтобы Windows сначала запускала файлы.bat, а не файлы.exe. Это важно, потому что в папке sencha уже есть файл "sencha.exe". И в командной строке, если вы введете "sencha", он будет выполнять "sencha.exe" вместо "sencha.bat".
Это было единственное решение, которое работало, потому что я очень ограничен, когда дело доходит до разрешений.
Моя система:- Windows 8.1
Среды Java
- C: \ JavaEnvironment \ Java \ jdk1.8.0_161
- C: \ JavaEnvironment \ Java \ jdk1.7.0_75
Я недавно установил Oracle 11g XE и получил упомянутое сообщение об ошибке при обращении к команде "java" в командной строке.
Я проверил свои переменные среды, проверил последовательность (как упомянуто в предыдущих ответах) и обнаружил, что моя системная переменная PATH имеет следующую запись в качестве первой записи:
C: \ OracleDatabase \ oraclexe \ приложение \ оракул \ продукт \11.2.0\ сервер \ Bin;
Я изменил последовательность и определил путь JDK в качестве первой записи:
Я реплицировал то же самое изменение на переменную пользователя: путь
После завершения вышеуказанного действия я перезапустил командную строку и выполнил команду java -version, и проблема исчезла. Он отображал Java 8 в качестве текущей версии.
Где-то существует еще один java.exe из jre версии 1.8, который находится в "пути", вы должны найти и удалить его, если это возможно. это может быть пользовательские временные данные для приложений, которым требуется jre.
У меня была похожая проблема. Перемещение пути JDK и JRE к вершине переменной пути решило проблему (которая имеет приоритет над тем, что присутствует в System32)
Например, вот мой:
Удалены java.exe, javaw.exe и javaws.exe из папки «Ниже»,
C:\Windows\System32
Также в Eclipse -> Windows -> Настройки -> Java -> Complier -> Уровень соответствия компилятора -> 1.7(было 1.8)
Я столкнулся с этой проблемой, но это произошло потому, что я открыл командную строку (машина с Windows), и по умолчанию она открыла командную строку по адресу:
C:\WINDOWS\system32>
попытка выполнить базовую команду, такую как java -version, даст мне эту ошибку:
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
Просто перейдите из system32 в C: \ и вуаля! все работает (думаю, в моем случае это было связано с присутствием внутри system32, который был бы каталогом для Windows)
Я также нашел следующий ключ в реестре Windows, его изменение решило мою проблему:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\JavaSoft\Java Runtime Environment\CurrentVersion
Unistall Java 8 из списка ваших программ. Следуя следующим шагам:-
На рабочем столе нажмите "Пуск" (или "Начальный шар") в левом нижнем углу экрана. Перейти к панели управления. Нажмите на Программы и компоненты. Выберите Java8 и нажмите Удалить
Удалите все приложения, связанные с Java, в диспетчере задач, а затем удалите файлы Java.exe, Javaw.exe и Jawaws.exe из C:\windows\System32
Это должно решить вашу проблему...:)
Просто сделал это, и это сработало
HKLM > ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ> JavaSoft > Java Runtime Environment
просто вручную измените текущую версию на 1.7 .
лол... но это сработало!