2011-03-09 73 views
8

我已经从JDK和JRE在我的Windows 7java.exe的总是指向JRE的路径,但不是JDK

我已经将JAVA_HOME设置为

C:\Program Files\Java\jdk1.6.0_23 

我有加

安装
C:\Program Files\Java\jdk1.6.0_23\bin 

到PATH。

但仍的java.exe指着我的JRE目录,这是

C:\Program Files\Java\jre6\bin 

,因为当我运行

java.exe -server 

它抱怨

Error: no `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'. 

谁能告诉我是什么我还需要设置吗?

+1

只是想确认一下,在更改环境变量后是否重新启动了shell? – 2011-03-09 19:05:41

回答

13

因为你在windows上,Java不能这样工作。 有(对您%WINDIR%SYSTEM32)在某些Windows目录中的java.exe

这实际上的java.exe在注册表中查找HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

道路不会帮助你的!由于我倾向于懒惰,所以我删除了JRE,而是为JDK创建了一个junction

+0

你真的辉煌 – Leon 2011-03-09 19:20:22

+1

java.exe在注册表中看起来?是呀当然?我的意思是,java.exe不应该这样做... – panny 2013-01-24 05:53:43

+0

@panny,我不知道我明白 - 不是由谁来设想的。任何Windows进程都可以查找注册表。注册表的某些密钥(甚至是配置单元)可能仅限于某些进程/用户,但这超出了这一点。 – bestsss 2013-01-24 08:19:25

0

右击我的电脑>属性>高级系统设置>环境变量>

搜索路径..

删除等植物学路径,然后添加你..

采取半护理冒号

0

确保您的JRE/bin目录不包含在您的路径中。在搜索路径时发现的第一个java.exe实例将被执行。如果您已经将JDK添加到JRE之后的路径中,那么JRE将始终被选中。

您还可以在调用java时明确指定java.exe的完整路径。这将确保你始终知道你正在调用的是什么java jre/jdk。

0

如果你有一个64位操作系统,它会尝试使用预装在Windows 7上的64位jre。你可以尝试使用添加/删除程序来删除64位jre。我已经多次遇到这个问题,并且我一直通过删除64位jre来修复它。

+0

在64位操作系统,只有64位服务器JVM – bestsss 2011-03-09 19:39:39

3

只需从%windir%\ system32删除java.exe

相关问题