JDK本身不使用Windows注册表来运行。是JRE使用系统注册表在某些情况下运行,例如Applet或使用WebStart技术启动的程序。
最后,JRE仅在Windows系统目录(例如C:/winnt/system32/java.exe)中运行时才使用注册表。如果用户只是在命令行中的某个随机目录中键入“
java”,则会发生这种情况,因为系统目录始终位于用户的路径中。在这种情况下,java.exe将通过查看注册表项来定位当前的Java安装。
[HKEY_LOCAL_MACHINE SOFTWARE JavaSoft Java运行时环境 CurrentVersion]
然后从相应的密钥获取JRE的路径
[HKEY_LOCAL_MACHINE SOFTWARE JavaSoft Java运行时环境 1.5 JavaHome]
请注意,某些软件(例如Oracle)会在PATH定义的开头自行安装,因此将首先找到它们的Java安装。您可以运行java.exe文件的绝对路径,如下所示
“ C: Program Files Java jre1.5.0 bin java.exe” MyClass
它不会使用注册表,并且可以保证使用jre1.5.0。因此,对于常规的Java SE程序,可以安全地指定启动JRE的完整路径。
但是对于Applet / Plugin或基于WebStart的程序,注册表始终用于确定当前的JRE。



