假设您希望以编程方式从批处理文件中确定这一点,您可以使用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
Run Code Online (Sandbox Code Playgroud)
注意事项:
nul,一个用于标准输出,另一个用于标准错误.ERROR...在值不存在时显示消息.delims=选项后面有一个空格字符(因为空格是分隔符).希望能帮助到你.
我想也许你有兴趣称这些:
System.getProperty("os.name");
System.getProperty("java.version");
Run Code Online (Sandbox Code Playgroud)