使用代码,如何确定Windows中安装的Java VM(及其版本)。
答案 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 :(得分: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未被引用。