好象猜测是错误的.
下面是我在老外的论坛找到的解释
Simple answer: because windows suck. Start regedit, go to
HKLM/Software/JavaSoft/Java Runtime Environment/ and find value
CurrentVersion. I have 1.4 there. Then there should be some
subkeys, one of them will be the one found in "CurrentVersion".
Check the paths in there.
Now if any of the subsection match the reality, you can
change the "CurrentVersion" to the name of that section.
Otherwise you can try modifying the paths in the "CurrentVersion"
section to the paths you would like to see there (maybe
C:/j2sdk1.4.2_03/jre/...).
以下是在CSDN找到的解释:
方案有两种,如下:
1.将JDK拷贝到注册表里面的路径下,如果文件夹的名称不一样的话也要改成和注册表里面一样的。
2.重新安装JDK。
建议解决办法:
a.重新安装JDK到任意目录,假设这个目录是C:\java。
b.将装好的JDK,JRE拷贝到任意一个其他目录,如D:\bak,这样做的目的主要是为了备份JDK。
c.制面板里面将JDK,JRE卸载了,这样你电脑里面就没有安装JDK了,也就是说注册表里面没有安装信息了。
d.你会发现C:\java里面的JDK已经被卸载掉了,这是将D:\bak里面的备份JDK拷会到C:\ava里面,然后设置环境变量。
JAVA_HOME:
C:\java\JDK1.5.0
path里面添加:
%JAVA_HOME%\bin
设置classpath: .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
这是,你就拥有了与注册表无关的JDK了,可以随意移动位置,移动以后只要修改 JAVA_HOME为移动以后的路径就可以了。