如何说服Windows使用JDK而不是JRE?
之前,此处和其他地方已经提出过这个问题:
问题是Windows忽略了JAVA_HOME它,它也忽略了我将JDK bin目录作为路径中的第一个条目的事实.
当我从命令行运行时java -version,它不是调用我的JDK 1.6安装,而是运行1.7 JRE.
我的猜测是这是一个特定于1.7的问题,Windows 7正在做一些不应该与注册表一起使用的东西.
有想法该怎么解决这个吗?
编辑:哎呀.当我写"路径"时,我在上面写了"类路径中的第一个条目".抱歉.
eri*_*son 127
在Windows上,java可执行文件使用Windows注册表来查找要运行的Java的默认版本.
java.exe通过使用PATH环境变量找到要运行的副本.除非您采取措施进行更改,否则默认情况下会在Windows目录中找到一个副本.由于此副本不在Java运行时目录中,因此它通过查看注册表来查找该副本.
因此,您需要修改注册表,或者在您的Windows目录之前放置所需的Java版本PATH.
小智 24
在Windows 8中,您可能希望删除
C:\ProgramData\Oracle\Java\javapath
目录.
从路径
它解决了我的问题.
Inv*_*sus 22
我也有这个问题.我正在运行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.我因此重新命名了文件,因为它以一种容易逆转的方式删除了它们.
希望这可以帮助!
Ken*_*ite 12
Windows不会忽略任何东西.这是您的设置问题; Windows只使用您提供的内容.它没有特别的知识JAVA_HOME.
CLASSPATH与Windows无关.对于Windows,它只是一个扩展到文件夹位置的环境变量.
检查您的%PATH%环境变量.这就是让Windows在另一个之前找到一个的原因.路径(如您链接的帖子所说)应该指向%JAVA_HOME%\bin;<remainder of path>.同样,您链接的帖子为您提供了使用批处理文件设置此项的方法.
(对于可能不知道这一点的其他人:检查%PATH%的最简单方法是打开命令提示符并键入echo %PATH%.您也可以通过右键单击Computer"开始"菜单的右窗格Properties然后选择Advanced System Settings,和Environmental Variables按钮.)
我遇到过同样的问题.我安装了一堆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
Run Code Online (Sandbox Code Playgroud)
在我将jdk移到第一位之后,它起了作用:
C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin
Run Code Online (Sandbox Code Playgroud)
我想Java 1.7的Windows安装程序将它安装到PATH中的其他目录中,因此首先使用而不是指定的自定义PATH条目C:\ jdk1.6.0_45_32\bin;
小智 5
假设您在 JDK 8 之后安装了 JDK 10,并且在系统环境变量设置路径中,例如“C:\ProgramData\Oracle\Java\javapath”,然后通过此路径进行 Java 版本控制。它会忽略这里设置的 JAVA_HOME 甚至 jdk 1.8 路径 所以删除路径中的“C:\ProgramData\Oracle\Java\javapath”以获得 JAVA_HOME 路径的效果
| 归档时间: |
|
| 查看次数: |
145078 次 |
| 最近记录: |