由于新版本的jdk1.7或者jdk1.8安装后,会自动在系统中注册一些东西,所以就算换了路径,还是原来的版本
再cmd中输入where java 查看路径是否改对了,如果改对了
就将C:\ProgramData\Oracle\Java\javapath目录下的java.exe,javaw.exe,javaws.exe删除掉(我之前安装的是jdk1.8,如果没有这个目录就不需要管它,这个ProgramData是C盘下的一个隐藏目录)
还有就是C:\Windows\System32目录下的java.exe,javaw.exe,javaws.exe也删除掉
然后就OK了!!
最佳解决方案
在Windows上,java
可执行文件使用Windows注册表来定位要运行的Java的默认版本。
使用PATH
环境变量找到要运行的java.exe
的副本。除非你采取措施来改变这一点,默认情况下会在Windows目录中找到一个副本。由于此副本不在Java运行时目录中,因此通过查看注册表来查找它。
所以,您需要修改注册表,或者将您想要的Java版本放在PATH
中的Windows目录之前。
次佳解决方案
我也有这个问题。我正在运行1.6,但想要构建我正在使用的代码1.5。我已经改变了JAVA_HOME和PATH(用户和系统)无效。
答案是1.6的安装程序将java.exe,javaw.exe和javaws.exe删除到我的Windows \ System32文件夹(Windows 7)中。
我通过将这些文件重命名为java_wrong.exe,javaw_wrong.exe和javaws_wrong.exe来解决它。只有在这样做之后,它会拾取正确的Java版本,如JAVA_HOME和PATH中定义的。我重命名了这些文件,因为它们以简单的可逆方式删除它们。
希望这可以帮助!
第三种解决方案
Windows不会忽略任何东西。这是您的设置的问题; Windows只是使用你提供的它没有JAVA_HOME
的专门知识。
CLASSPATH
与Windows无关。对于Windows,它只是一个扩展到文件夹位置的环境变量。
检查您的%PATH%
环境变量。 It’s what’s使得Windows之前找到一个。路径(作为您链接到的帖子)应该指向%JAVA_HOME%\bin;<remainder of path>
。再次,你链接的帖子给你一种使用批处理文件设置它的方法。
(对于可能不知道的其他人:检查%PATH%的最简单的方法是打开命令提示符并键入echo %PATH%
,也可以通过右键单击开始菜单右窗格中的Computer
并选择Properties
,然后Advanced System Settings
,和Environmental Variables
按钮。)
第四种方案
在Windows 8中,您可能需要删除C:\ ProgramData \ Oracle \ Java \ javapath目录。它解决了我的问题。
第五种方案
我遇到过同样的问题。我安装了一堆Java版本,由于某些原因,使用Java 1.7而不是Java 1.6,尽管我在路径中指定使用1.6(C:\ jdk1.6.0_45_32 \ bin)。
我不得不将我想要使用的JDK(1.6)的路径移动到PATH环境变量中的第一个条目,以确保Windows使用1.6而不是1.7。
所以,例如,之前的PATH环境变量是:
C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin
在我将jdk移动到第一位之后,它工作:
C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin
我猜,Java 1.7的Windows安装程序将它安装到PATH中已经存在的其他目录中,因此首先被使用,而不是指定的自定义PATH条目C:\ jdk1.6.0_45_32 \ bin;
参考文献
注:本文内容整合自google/baidu/bing辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:gxnotes#qq.com(#替换为@)。