HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
当JAVA.EXE运行时,其有一套JVM的加载机制,机制是这样的: 假如存在../jre/bin/java.dll文件,则查找../jre/lib/ jvm.cfg文件,在该文件中,第1个被列出的jvm.dll类型作为缺省值(假如在java.exe命令行指定了jvm.dll的类型,则使用指定类型)。jvm.dll类型分为hotspot,classic,server三种。假如不存在../jre/lib/jvm.cfg文件,则打印下面的错误信息:
Error: could not open 'c:\jdk1.3\jre\lib\jvm.cfg'
如不存在../jre/bin/java.dll(当运行的是winnt\system32\java.exe),则注册表将在此时发挥作用,HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ CurrentVersion键值所记录的实际上是winnt\system32\java.exe的版本值
2、如果java.exe内部版本值和CurrentVersion不一致,则报类似以下的错误:
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.X', but '1.Y' is required. 此时,若手工修改,基本上可以解决问题,但是最好的方法还是卸载以前的老版本JDK,重新安装新版本的JDK来保持各键值关联是一致的。
原文网址:http://blog.sina.com.cn/s/blog_7250360c0100lhm3.html