如何在Windows上检测已安装的Sun/Oracle JRE?

Dan*_*ski 15 java winapi

我试着用谷歌搜索答案,但我发现的只是如何从浏览器中检测Java的技巧或者只是启动Java的非常通用的方法,看它是否运行,这在我的应用程序中引入了可能很长的延迟.(第一次在我的机器上启动时~~两秒钟)

如果以下限制适用,我希望有更快的方法:

  • 只有Sun/Oracle JRE或JDK
  • 只有1.6或更高
  • 只有Windows平台
  • 不是来自浏览器,而是来自普通的旧Win32可执行文件

此检测不适用于公共应用程序,仅适用于Windows平台上的内部使用.

是否有我可以阅读的注册表路径或我可以解析的一些配置文件?

fin*_*nnw 19

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
Run Code Online (Sandbox Code Playgroud)

  • 或`HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java运行时环境 (7认同)
  • 在我的 PC 上,HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment 指向旧的已卸载的 JRE。对我来说唯一正确的注册是在 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment 下 (2认同)

gro*_*ter 6

Windows>开始> cmd>

C:> for %i in (java.exe) do @echo.   %~$PATH:i
Run Code Online (Sandbox Code Playgroud)

如果安装了JRE,则会显示Path,例如: C:\Windows\System32\java.exe