检查Java版本时出错:找不到java.dll

时间:2012-02-16 14:48:30

标签: java runtime

为什么我会这样?我该如何解决?

C:\Users\ash>java version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.7.0_01', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

19 个答案:

答案 0 :(得分:38)

重新安装所有JDK的公认解决方案有点苛刻。 我也经历过这个问题,这是我的2美分:

自从我安装了JDK 8并且仍安装了JDK 6以来,这个问题就开始发生了。我需要处理我正在进行的不同项目。

我注意到我有一个用户和一个系统%JAVA_HOME%,所以我删除了我的用户%JAVA_HOME%变量,只剩下系统一个。

我还注意到在我的Oracle安装中有一些Java可执行文件,我相信那些因为我的Oracle和Java安装都存在冲突的文件存在于我的%PATH%变量中。

我从%PATH%变量中删除了所有Java路径,只留下变量开头的%JAVA_HOME%\bin,以避免与Oracle安装发生任何冲突。

答案 1 :(得分:28)

安装java 1.8后我遇到了类似的问题。

要解决此问题,请转到高级系统设置 - >路径并删除

C:\ ProgramData \甲骨文\爪哇\ javapath;

答案 2 :(得分:11)

重新安装JDK并在JDK上设置系统变量JAVA_HOME。 (例如C:\ tools \ jdk7)
并将JAVA_HOME变量添加到PATH系统变量

输入命令行

echo %JAVA_HOME%

java -version

验证您的安装是否成功完成。

答案 3 :(得分:11)

删除

  

C:\ ProgramData \甲骨文\爪哇\ javapath;

像魅力一样工作

答案 4 :(得分:2)

确保您的JDK Path变量指向\bin文件夹并位于列表的顶部。

如果有任何其他条目有一个名为java的文件(例如C:\ProgramData\Oracle\Java\javapath),它将对该文件而不是JDK中的java文件运行命令。除非您的文件因某种原因损坏或损坏,否则无需重新安装整个JDK。

答案 5 :(得分:2)

在安装Java 10.0之后,我遇到了类似的问题

要解决此问题,请转到高级系统设置->路径并删除

C:\ ProgramData \ Oracle \ Java \ javapath;

答案 6 :(得分:2)

我必须从发生冲突的“路径”中删除“通用文件” javapath,以使其正常运行。现在,幸运的是, java -version 可以正常工作。

$filename = 'CompanySubset.csv';

$company_array = [];

if (($handle = fopen("{$filename}", "r")) !== FALSE) {

    while (($companyData = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $company_array[] = $companyData;
    }

    fclose($handle);
}

答案 7 :(得分:1)

您可能在64位环境中使用32位版本的java。 从HKLM \ Software \ JavaSoft导出注册表配置单元并导入HKLM \ Software \ Wow6432Node \ JavaSoft。对于1.6,我只需要JavaHome和RuntimeLib值。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft]

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft\Java Runtime Environment]
"CurrentVersion"="1.6"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Javasoft\Java Runtime Environment\1.6]
"JavaHome"="C:\\Java\\jre"
"RuntimeLib"="C:\\Java\\jre\\bin\\client\\jvm.dll"

答案 8 :(得分:1)

我编辑了我的路径,将Oracle JDK放在路径的开头并修复了它。

答案 9 :(得分:1)

问题: Windows 2012服务器中存在相同的问题。我们使用了JAVA_HOME环境系统变量,我们在PATH中使用了这种设置:...%JAVA_HOME%/ bin; ... 并且PATH中没有其他与Java相关的设置。

问题是我们在JAVA_HOME变量的值的末尾有一个空格。就像'C:\ Program Files \ Java \ Jdk 1.8.0_172'一样,%JAVA_HOME%/ bin的意思是'C:\ Program Files \ Java \ Jdk 1.8.0_172 \ bin'。因此,由于该值被空间分割,并且系统尝试在“ C:\ Program Files \ Java \ Jdk 1.8.0_172”处查找java.exe,而显然没有。

解决方法是::从JAVA_HOME的值末尾删除空格!

答案 10 :(得分:1)

不幸的是,以上都不对我有用。 当我卸载计算机上安装的旧JDK版本时,该错误已解决。我只是使用“卸载或更改程序”工具(在“控制面板”下)完成了此操作。

答案 11 :(得分:0)

转到 CMD 并键入以下内容: 设置路径=C:\Program Files\Java\jdk1.8.0_291\bin

(这里jdk1.8.0_291代表你的java版本,可能因你而异)

答案 12 :(得分:0)

如图所示添加需求路径并删除C:\ ProgramData \ Oracle \ Java \ javapath;后,

。不要忘记重新打开编辑器。

答案 13 :(得分:0)

对于我来说,regedit信息是正确的,并且通过执行以下操作解决了问题:

1)将JAVA_HOME设置为jdk-设置JAVA_HOME = C:\ Program Files \ Java \\ bin 2)将PATH设置为jre-设置PATH =“ C:\ Program Files \ Java \\ bin”

答案 14 :(得分:0)

当您的“ Java Runtime Environment”注册表项丢失或与已安装的JDK不匹配时,通常会在Windows中发生此问题。不匹配的原因可能是由于多个JDK。

解决步骤:

  1. 打开“运行”窗口:

    windows + R

  2. 打开注册表窗口:

    输入“ regedit”并输入。

  3. 转到:\ HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \

  4. 如果JavaSoft中不存在Java Runtime Environment,则创建新的Key并命名为Java Runtime Environment。

  5. 对于Java Runtime Environment,请创建“ CurrenVersion”字符串键,并提供适当的版本作为值:

    JRE regedit entry

  6. 创建一个新的1.8子项。<​​/ p>

  7. 对于1.8,创建一个名称为JavaHome且值为JRE home的字符串键:

    JRE regedit entry 2

参考:https://mybindirectory.blogspot.com/2019/05/error-could-not-find-javadll.html

答案 15 :(得分:0)

  1. 从计算机上卸载Java
  2. 检查Java文件夹是否已从程序文件中删除
  3. Check Registry没有任何Java实例
  4. 打开系统变量,然后从PATH中删除唯一的Java路径
  5. 现在再次安装新版本。
  6. 在系统变量中设置路径。

此过程将清除Java的所有痕迹,然后安装新的Java。

注意:当完成多个安装和卸载时,会发生此问题。

答案 16 :(得分:0)

  1. 重命名文件"C:\Windows\System32\java.exe" to "C:\Windows\System32\java_old.exe"
  2. CMD-> java -version

完成。

答案 17 :(得分:0)

在环境变量中完成所有设置后,如果您在cmd中遇到此错误,并出现另一个错误,如“找不到运行时环境”。然后,您只需要在 jdk文件夹中运行 jre.exe ,然后重新安装它,然后通过 java -version 命令对其进行重新检查。希望对您有帮助。

答案 18 :(得分:0)

我从PATH变量中删除了“C:\ Program Files(x86)\ Heroku \ bin”,问题已经消失。我认为可能是Heroku需要不同版本的Java。因此,检查PATH变量中的所有目录,删除可能存在冲突的目录。