Registry key Error: Java version has value '1.8', but '1.7' is required

Registry key Error: Java version has value '1.8', but '1.7' is required

同时 运行

sencha app build production

我收到以下错误:

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.

java -version ,命令显示如下:

java 版本“1.8.0_40” Java(TM) SE 运行环境(build 1.8.0_40-b26) Java HotSpot(TM) 64 位服务器 VM(构建 25.40-b25,混合模式)

找不到路径出错的地方。有什么想法吗?

------------------------编辑-------------------- --------------------------

注意:我使用的是Windows 7(64位)。

我试过卸载 sencha touch cmd 并重新安装。但还是一样的错误。

我已经卸载了所有java版本的实例并重新安装了最新的一个,问题仍然存在。

首先你应该有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.exejavaw.exejavaws.exe
  1. Windows\System32

  2. Windows\SysWOW64 文件夹。 [如果你有 x64 系统(Win 7 64 位),请尝试步骤 2]

我的简短贡献,分享了与 Talend Open Studio 64 位版本相同的问题。

  1. 手动启动 ..\TOS_DI-Win32-20150702_1326-V6.0.0\TOS_DI-win-x86_64.exe(不是 link 启动 Windows 菜单)
  2. 并出现此注册表错误消息

要解决此问题,请删除 c:\ProgramData\Oracle\Java\javapath\

上的所有 java.exe、javaw.exe 和 javaws.exe 文件

并且 TOS 以 64 位版本正确启动!

我的经验:

我正在使用 windows 8.1 并且我已将 JAVA 版本从 1.8 降级到 1.7,但我遇到了同样的错误。

错误:注册表项“Software\JavaSoft\Ja 的值为“1.7”,但需要“1.8”。

我删除了java.exejavaw.exejavaws.ex e 来自 C:\Windows\System32 文件夹,它对我有用。

就我而言(Windows 7 64 位),我只是执行了以下操作:

  • Path 环境变量
  • 中删除了对 C:\ProgramData\Oracle\Java\javapath; 的引用
  • 已删除文件 javajavawjava ws 来自 C:\Windows\System32 文件夹

之后,我关闭了所有打开的命令行控制台,重新打开它们并 运行 java -version.

将其从系统路径中删除:

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

它会解决将 java 版本从 1.7 升级到 1.8 的问题

aribeiro 的答案对我有用 - 稍作改动

  • 我删除了对 C:\ProgramData\Oracle\Java\javapath 的引用;来自 Path 环境变量
  • 我将 /path/to/jdkhome 作为我的 PATH 环境变量中的第一个条目。我认为仅此一项就足够了。

我遇到了同样的问题。对我有用的简单解决方案是为 JRE/JDK 重新排列 PATH 中的条目。这个问题是在安装JRE 8后开始出现的,它的安装在System32 or SysWOW64目录下放了一些可执行文件,这些可执行文件乱七八糟。解决问题:

  1. 创建指向 JDK 家的环境变量作为 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%

  1. 打开注册表编辑器
  2. 转到[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
  3. 将值 CurrentVersion 从“1.8”更改为“1.7”

回复:Windows 用户

没有。不要从您的 PATH 变量中删除 Javapath 环境引用。

注册表不起作用的原因是 Oracle Javapath 脚本需要在 JRE & JDK 目录之前的 PATH 序列中 运行 - 它会整理出当前版本:

将此目录放在 %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)

刚刚做了这个并且成功了

HKLM > 软件 > Java软件 > Java 运行时环境

只需手动将当前版本更改为 1.7。

大声笑……但它成功了!

我是win7 64位

复制文件夹C:\Program Files\Java\jre1.8.0_91\bin to the C:\Windows\System32.java.exejavaw.exejavaws.exe

然后打开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)

在进行上述操作之前,请确保注册表的当前版本为 1.8

在“开始”菜单中键入 "regedit" 以打开注册表编辑器

  1. 转到左侧注册表中的 "HKEY_LOCAL_MACHINE" explorer/tree 菜单
  2. 在 "HKEY_LOCAL_MACHINE" 个注册表中单击 "SOFTWARE"
  3. 在 "SOFTWARE" 注册表中单击 "JavaSoft"
  4. 单击 "JavaSoft" 列表中的 "Java Runtime Environment" 在这里的注册表你可以看到安装的不同版本 java
  5. 点击"Java Runtime Environment"- 在右边你会得到 4-5行。请 select "CurrentVersion" 然后右击( select 修改选项)确保版本为“1.8”

从您的程序列表中卸载 Java 8。按照以下步骤操作:-

在您的桌面上,单击屏幕左下角的开始菜单(或开始球)。 转到控制面板。 单击程序和功能。 Select Java8 然后点击卸载

我没有删除任何 java.exe 文件,但更改了我的系统的顺序 - "path" 变量 - 因此它反映了 %JAVA_HOME%\bin 作为第一次进入。 成功了。

jre 1.8 版的另一个 java.exe 存在于 "path" 中 如果可能,您应该找到并删除它。对于需要 jre 的应用程序,它可能位于用户临时数据中。

请更改JAVA_BIN和JAVA_HOME系统变量,然后重启系统或重新登录。您遇到该错误是因为它仍然是 jdk1.7 路径。在 windows 上是这样的:

我对这个问题的解决是在阅读并尝试了以上所有内容之后得出的。

在我的例子中,我尝试降级 Java 以使用 Apache ActiveMQ 中的打印输出。卸载所有 Java 版本并清理注册表后,我遇到了同样的错误

Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' has value '1.7', but '1.8' is required."

在我的例子中,我需要转到环境变量,编辑路径,打开 javapath 位置 (C:\ProgramData\Oracle\Java\javapath),那里有 - 三个文件 (java.exejavaw.exejavaws.exe) 从 JRE8 版本中保留下来。

确定这一事实后,我简单地用 C:\Windows\SysWOW64 目录中的相同文件(那些来自 JRE7 版本)切换它们,并且一切正常。

我遇到过类似的问题。将 JDK 和 JRE 路径移动到路径变量的顶部解决了问题(优先于 System32 下存在的内容)

例如,这是我的:

只需安装 Java SE Runtime Environment JRE 7 !

现在您在 "Control Panel"

中的 "Programs and Features" 中看到 "java 7" & "java 8"

对我有用。

最新的自动 Java 更新后,我无法从命令提示符 运行 Java。

我的路径变量有 'C:\ProgramData\Oracle\Java\javapath;'

我无法从命令提示符 window 进入 'C:\ProgramData\Oracle\Java\javapath;',因为它不存在。

我删除了 C:\ProgramData\Oracle\Java\javapath;'来自路径变量并将其替换为 'C:\Program Files\Java\jre1.8.0_141\bin;'

在任务管理器中杀死所有与java相关的应用程序,然后从C:\windows\System32[=10]中删除Java.exe、Javaw.exe和Jawaws.exe =]

这应该可以解决您的问题...:)

您必须在变量 JAVA_HOME 中定义 jdk 文件夹, 将 %JAVA_HOME% 添加到变量路径

删除或更改文件夹 system32 java.exe、javaw.exe 和 javaws 的名称32

执行 cmd.exe, java -version 现在采用您在 JAVA_HOME.

中定义的新版本

这个问题的一个可能的解决方案是在 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.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"。

这是唯一可行的解​​决方案,因为我在权限方面非常受限。

我的系统:- Windows8.1

Java 环境

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

我最近安装了 Oracle 11g XE,在命令提示符下访问 "java" 命令时收到上述错误消息。

我检查了我的环境变量,检查了序列(如之前的回复所述)并检测到我的系统 PATH 变量具有以下条目作为第一个条目:

C:\OracleDatabase\oraclexe\app\oracle\product.2.0\server\bin;

我更改了顺序并将 JDK 路径定义为第一个条目:


我将相同的更改复制到用户变量:路径


完成上述activity后,我重新启动命令提示符并执行java -version 命令,问题就消失了。它显示 Java 8 作为当前版本。

错误很明显...

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.

...您正在尝试使用 java.exe 1.7 可执行文件,而 HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment > CurrentVersion 注册表项的值为 1.8.

提出的解决方案反复出现的主题是错误是配置错误。该错误可以通过各种不同的方式解决(例如,重新配置用户环境或删除 java 可执行文件,希望用户 %PATH% 中存在另一个回退 java.exe 和回退 java.exe 是正确的可执行文件)。

正确的解决方案取决于您要实现的目标:"are you trying to downgrade from jdk-8 to jdk-7? Are trying to upgrade to jdk-8? ..."

复制步骤

  1. 安装jdk-7u80-windows-x64.exe

notes:

  • the java.exe executable available in the users %PATH% is installed in C:\Windows\System32
  • the installation does not update the users %PATH%
  • the HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment > CurrentVersion string registry entry is created (among others) with the value 1.7
  1. 安装jdk-8u191-windows-x64.exe

notes:

  • the users %PATH% is updated to include C:\Program Files (x86)\Common Files\Oracle\Java\javapath as the first entry
  • the the HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment > CurrentVersion string registry entries value is updated to 1.8
  1. 更新用户%PATH%环境变量,删除C:\Program Files (x86)\Common Files\Oracle\Java\javapath

  2. 在新命令提示符中 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.

解决方案

  1. OP 的解决方案 是对错误的"fingers-crossed and hope that there exists a fallback java.exe in the users %PATH% and that the fallback executable is correct" 方法。鉴于复制步骤,从 C:\Windows\System32 中删除 java.exejavaw.exejavaws.exe 可执行文件(仅在我的情况下)将导致不再有任何 java.exe 存在在用户 %PATH% 中导致错误 'java' is not recognized as an internal or external command, operable program or batch file. 这不是一个很好的解决方案。

  2. answers and 工作但是你要恢复使用 java.exe 1.7(例如更新 CurrentVersion 注册表项的值以匹配 java.exe在用户 %PATH%).

  3. 中找到的版本
  4. 确保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%)

我在某些 windows 服务 运行 Java 上遇到了这个错误。 最后,在我的机器上,我尝试卸载 java.

的其他版本

我只留下了 1.8,现在一切正常。

除了 Anand Gupta 的回答之外,请确保除了您需要的以外,没有使用其他 java。 运行 which javawhere java for Windows)并查看使用了哪些 java 可执行文件。 删除你不想使用的那些,如果你需要的不存在,将它添加到 PATH。

我遇到了这个问题,但这是因为我打开了命令提示符(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