使用代码,如何确定在Windows中安装Java VM(及其版本)。如何确定Java VM是否安装在Windows上?
回答
假设您希望从批处理文件中以编程方式确定此问题,可以使用安装在windows\system32
中的reg.exe
工具。
关于这个工具令人讨厌的事情是,没有办法让它只返回一个退出代码,所以你必须通过重定向压制它的输出到任何地方。当该值不存在时,它也会生成一条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=
选项后面有一个空格字符(因为空格是分隔符)。- 批处理文件如果成功(安装)或失败时(未安装)返回错误级别/退出代码为零。
希望它有帮助。
无法检测是否从Java代码安装了JVM。如果没有JVM存在,Java代码就无法运行。因此,如果您能够运行已编译的代码,则会安装JVM。
所以我们可以说'return true'总是正确的结果:-) – 2011-03-19 17:29:13
我不认为在Windows上可以安装的JVM可以是。我更关心的是检查你的硬盘驱动器目录中是否有JRE,以及是否可以通过参考PATH
环境变量中的bin
文件夹轻松访问此JRE。
您可以通过尝试从代码运行java -version
并收集输出来检查此问题。
如果您收到消息说明'java' is not recognized as an internal or external command, operable program or batch file.
,那么您的jre没有被引用。
虽然Microsoft Windows仍然支持PATH变量,但它更喜欢它的注册表将程序文件名解析为其完整路径。所以只要检查PATH变量的条目是不够的。正如你所建议的那样,运行“java -version”似乎是最可靠和最简单的解决方案。 – 2011-03-19 15:44:59
我想也许你有兴趣调用这些:
System.getProperty("os.name");
System.getProperty("java.version");
不知道这是OP在找什么,但这是我正在寻找的。谢谢。 – NeilMonday 2011-09-06 21:14:21
Oracle的deployJava.js不能只检查一个Java特定的最低版本可在用户的计算机上,但如果是在Windows上,引导他们通过下载并安装它,如果需要的话。
通常deployJava.js用于使用Java Web Start & applets,您可以使用JWS形式链接到“裸” Jar文件(不依赖)启动的应用程序提供了启动按钮。
- 1. 如何确定java是否通过python安装在系统上?
- 2. 如何确定Windows Java安装位置
- 3. 在vm windows上安装openstack azure
- 4. Java:如何检查MySQL是否安装在Windows上?
- 5. 如何检查Java是否安装在我的Windows系统上?
- 6. 确定是否安装了Google地球(在Windows上)
- 7. 在centos7上正确安装redis vm
- 8. 如何确定asp.net核心是否已安装在Windows服务器上
- 9. 如何在Windows上正确安装MinGW
- 10. 在windows vm上使用安装程序安装vmware工具
- 11. 如何确定Dropbox是否已安装在iOS设备上?
- 12. 如何在Windows上安装
- 13. 如何在Windows上安装
- 14. 如何在Windows上安装
- 15. 我们如何以编程方式确定Java是否安装在Windows系统上?
- 16. 在VM下在windows azure中安装oracle
- 17. 如何确定在Windows上安装的库是32位还是64位?
- 18. 如何知道iis是否安装在Windows 7上?
- 19. 如何判断SP1是否安装在Windows Server 2008 R2 Standard上?
- 20. Android:如何确定Google Play服务是否已正确安装
- 21. 如何检查PyQt5在Mac上是否正确安装?
- 22. 如何判断SQLite是否在Linux上正确安装?
- 23. 在Linux VM(RHEL)上安装Git
- 24. JRE安装是否在Windows上自动定义PATH和JAVA_HOME?
- 25. 在Windows上安装
- 26. 如何确定用户是否被重新安装在Android
- 27. 如何确定软件包是否安装在elisp中?
- 28. 确定是否Windows 8的可安装设备驱动程序
- 29. 的CouchDB不会安装为在Azure上的Windows VM服务
- 30. 如何确定是否要获取内联或重定向java安装?
Java代码可以在没有Java VM的情况下运行? – 2011-03-19 15:17:22
也许OP意味着从批处理文件或其他语言检测?请解释。 – mellamokb 2011-03-19 15:20:22
他没有说代码必须是Java。 – Ken 2011-03-19 15:32:46