在 Windows 上,为什么 java -version 返回错误:打开注册表项“Software\JavaSoft\Java Runtime Environment”?

O. *_*and 34 windows windows-registry java environment-variables

  1. 我已经删除了我计算机上所有古老的 Java 8 安装。
  2. 我已经从https://jdk.java.net/11/下载了最新的 openjdk 11并将内容提取到C:\Program Files\Java\.
  3. 我已经将系统环境变量设置为

    JAVA_HOME = C:\Program Files\Java\jdk-11.0.1
    
    Run Code Online (Sandbox Code Playgroud)

    并添加%JAVA_HOME%\bin到路径。

  4. 在命令提示符中> java -version返回:

    Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'
    Error: could not find java.dll
    Error: Could not find Java SE Runtime Environment.
    
    Run Code Online (Sandbox Code Playgroud)
  5. 为什么?

O. *_*and 58

如何使它工作:

Windows > 开始 > cmd >

C:> for %i in (javac.exe) do @echo.   %~$PATH:i
Run Code Online (Sandbox Code Playgroud)

或者

C:> where java
Run Code Online (Sandbox Code Playgroud)

它返回C:\ProgramData\Oracle\Java\javapath包含以下内容的文件夹:

  • 执行程序
  • 执行程序
  • 执行程序

使用 Windows 文件资源管理器浏览到此文件夹并删除所有内容(以上三个文件)。

关闭并重新打开 cmd(Windows > 开始 > cmd >)

C:> java -version
Run Code Online (Sandbox Code Playgroud)

现在应该返回:

openjdk 版本“11.0.1” 2018-10-16

OpenJDK 运行时环境 18.9(构建 11.0.1+13)

OpenJDK 64 位服务器 VM 18.9(构建 11.0.1+13,混合模式)

或类似的东西,具体取决于您下载的 Java 发行包...

有用!