如何确定Windows上是否安装了Java VM?

时间:2011-03-19 15:14:35

标签: java windows jvm

使用代码,如何确定Windows中安装的Java VM(及其版本)。

5 个答案:

答案 0 :(得分:6)

假设您希望以编程方式从批处理文件中确定这一点,您可以使用reg.exe中安装的windows\system32工具。

关于这个工具的烦人的事情是没有办法让它只返回一个退出代码,所以你必须通过重定向到无处来抑制它的输出。当值不存在时,它还会生成ERROR消息。

@echo off
rem
rem DetectJvmInstalled.cmd
rem
reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion" > nul 2> nul
if errorlevel 1 goto NotInstalled

rem Retrieve installed version number.
rem The reg.exe output parsing found at http://www.robvanderwoude.com/ntregistry.php
set JvmVersion=
for /F "tokens=3* delims= " %%A IN ('reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion"') do set JvmVersion=%%A
rem if "%JvmVersion%" == "" goto NotInstalled

:Installed
echo JVM Version = %JvmVersion%
exit /b 0

:NotInstalled
echo JVM Not installed.
exit /b 1

注意事项:

  • nul设备有两个重定向,一个用于标准输出,另一个用于标准错误。
  • 检测与值解析分开进行,以避免在值不存在时显示ERROR...消息。
  • delims=选项后面有一个空格字符(因为空格是分隔符)。
  • 如果成功(已安装),则批处理文件将返回错误级别/退出代码,如果失败,则返回1(未安装)。

希望它有所帮助。

答案 1 :(得分:5)

我想也许你有兴趣称这些:

System.getProperty("os.name");
System.getProperty("java.version");

答案 2 :(得分:4)

Oracle的deployJava.js不仅可以检查用户计算机上可用的特定Java最低版本,而且如果它们在Windows上,则指导他们在需要时下载并安装它。

通常,deployJava.js用于为使用Java Web Start& applets,您可以使用JWS表单链接到“裸”Jar文件(没有依赖项)。

答案 3 :(得分:3)

无法检测JVM是否是从Java代码安装的。没有JVM存在,Java代码无法运行。因此,如果您能够运行已编译的代码,则会安装JVM。

答案 4 :(得分:2)

我真的不认为在Windows上可以安装 JVM。检查硬盘驱动器目录中是否有JRE以及是否可以通过bin环境变量中PATH文件夹的引用轻松访问此JRE,我会更相关。 / p>

您可以尝试从代码运行java -version并收集输出来检查这一点。

如果您收到一条说明'java' is not recognized as an internal or external command, operable program or batch file.的消息,则表示您的jre未被引用。