Ключ реестра Ошибка: версия 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 от моего

  1. Windows\System32 а также

  2. Windows\SysWOW64 папка. [Попробуйте шаг 2, если у вас система x64 (Win 7 64 бит)]

В моем случае (Windows 7 64-bit) я просто сделал следующее:

  • Удалена ссылка на C:\ProgramData\Oracle\Java\javapath; из переменной окружения Path
  • Удалены файлы java, javaw и javaws из папки C:\Windows\System32

После этого я закрыл все открытые консоли командной строки, снова открыл их и запустил Java -версию.

  1. открытое regedit
  2. идти к [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
  3. изменить значение 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 каталоги, эти исполняемые файлы портятся. Чтобы решить проблему:

  1. Создайте переменную окружения, указывающую на JDK home как JAVA_HOME,

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

  2. Поставить запись %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? ..."

Шаги воспроизведения

  1. установить jdk-7u80-windows-x64.exe

заметки:

  • java.exe исполняемый файл доступен пользователям %PATH% установлен в C:\Windows\System32
  • установка не обновляет пользователей %PATH%
  • HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment > CurrentVersion Строка реестра создается (среди прочих) со значением 1.7
  1. установить 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
  1. обновить пользователей %PATH% переменная окружения, удалить C:\Program Files (x86)\Common Files\Oracle\Java\javapath

  2. в новой командной строке java -version

Ошибка: ключ реестра 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'имеет значение'1,8', но требуется'1,7'.

Ошибка: не удалось найти java.dll

Ошибка: не удалось найти среду выполнения Java SE.

Решение (s)

  1. Решение ОП /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. что не так уж много решения.

  2. ответы /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%).

  3. удостовериться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", чтобы открыть редактор реестра.

  1. Перейдите к "HKEY_LOCAL_MACHINE" в левом меню просмотра / дерева реестра.
  2. Нажмите "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ" в реестрах "HKEY_LOCAL_MACHINE"
  3. Нажмите "JavaSoft" в реестре "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ".
  4. Нажмите "Java Runtime Environment" в списке "JavaSoft" реестров, здесь вы можете увидеть различные версии установленного Java
  5. Нажмите "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.

Пожалуйста, измените системную переменную JAVA_BIN и JAVA_HOME, а затем перезапустите систему или, возможно, перезапустите. Вы получаете эту ошибку, потому что это все еще путь jdk1.7. На окнах это так: введите описание изображения здесь

Мой короткий вклад, для того, чтобы поделиться той же проблемой с 64-битной версией Talend Open Studio.

  1. Запустите..\TOS_DI-Win32-20150702_1326-V6.0.0\TOS_DI-win-x86_64.exe вручную (не связывайте меню запуска Windows)
  2. и это сообщение об ошибке реестра появляется

Чтобы решить эту проблему, удалите все файлы 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)

Например, вот мой:

  1. Удалены java.exe, javaw.exe и javaws.exe из папки «Ниже»,

    C:\Windows\System32

  2. Также в 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 .

лол... но это сработало!

Другие вопросы по тегам