【问题标题】:Cannot change java version on Windows 8无法在 Windows 8 上更改 java 版本
【发布时间】:2014-03-06 14:31:17
【问题描述】:

我在我的 Windows 8 机器上安装了 jdk6 和 jdk7。 JAVA_HOME 环境变量最初指向 C:\Program Files\Java\jre7。

我现在正在尝试在 Java 1.6 下运行程序。我将 JAVA_HOME 更改为 C:\Program Files\Java\jre6 但是当我在命令提示符下键入 java -version 时,我得到“java 版本”1.7.0_25。我什至删除了所有与 Java 相关的环境变量并修改了路径变量不包括对 Java 的任何引用。但是,当我输入 java -version (应该失败)时,我得到“java version”1.7.0_25”。

我也尝试将 JAVA_HOME 更改为“C:\Program Files\Java\jdk1.6.0_45”,而 java -versio 仍然给我“java 版本“1.7.0_25”。

有人知道为什么我无法将 Java 版本更改为 1.6 吗?

我现在的路径是:

c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Windows Live\Shared;%JAVA_HOME%\bin;%M2_HOME%\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;%OPEN_SSL%\bin

【问题讨论】:

  • 您是否在更改值之间关闭并重新打开命令提示符?
  • 这个问题不应该在superuser.com上吗?
  • 是的,我已经尝试过重启和硬关机和重启。
  • 您还应该确保%JAVA_HOME%\bin 在您的PATH 中位于任何其他Java bin 文件夹之前。
  • @meyerjp3 - system32 中有 java.exe 吗?尝试重命名它或将 java 放在 system32 之前的路径上,或者将定义 pf PATH 粘贴到您的机器上

标签: java windows


【解决方案1】:

JAVA_HOME 变量放在%SystemRoot%\system32 之前。 Windows 安装程序将 java.exe 文件添加到 Windows\system32 目录。由于它位于 JAVA_HOME 之前,因此使用来自 system32 的可执行文件。

(在再次检查 java 版本之前不要忘记重新启动控制台)

编辑:最后一个 java 添加到 PATH 文件夹 C:\ProgramData\Oracle\Java\javapath。就我而言,它位于 PATH 中的第一位。该文件夹包含指向 java.exe、javaw.exe 和 javaws.exe 的符号链接。现在你有两个选择。

  • 可以删除C:\ProgramData\Oracle\Java\javapath添加JAVA_HOME(或者直接点做java bin目录
  • 您可以将C:\ProgramData\Oracle\Java\javapath 中的符号链接更改为指向正确可执行文件的符号链接。

【讨论】:

    【解决方案2】:

    为了在您直接调用 java 时从终端调用正确的 JVM,您必须将 %JAVA_HOME%/bin 放在路径中,然后放在任何其他可能包含 java.exe 实现的目录之前。

    如果您使用 Java 安装程序安装了 JVM,则您的 %SystemRoot%\system32 中可能有一个 java.exe。这只是一个虚拟实现,它查看注册表并使用最后安装的 JVM。

    如果您的 %SystemRoot%\system32 中有 java.exe 并且它没有使用正确的 JVM,则您必须正确卸载所有 JVM 或将 %JAVA_HOME%\bin 放在路径中的 %SystemRoot%\system32 之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 2020-11-19
      • 2015-11-01
      • 1970-01-01
      相关资源
      最近更新 更多