Сам JDK не использует реестр Windows для запуска.Это JRE, которая использует системный реестр для запуска в некоторых ситуациях, таких как апплет или программа, запущенная с помощью технологии WebStart.
Наконец, JRE будет использовать реестр только в том случае, если он запускается из системного каталога Windows (например, C: /winnt/system32/java.exe).Это произойдет, если пользователь просто наберет «java» в командной строке в некотором произвольном каталоге, потому что системный каталог всегда находится в пути пользователя.В этой ситуации java.exe найдет текущую установку Java, просмотрев раздел реестра
[HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ CurrentVersion]
и затем получите путь к JRE из соответствующего ключа
[HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment \ 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.