我尝试使用谷歌搜索答案,但我发现的只是如何从浏览器中检测Java的技巧或者只是启动Java的非常通用的方法,看它是否运行,这在我的应用程序中引入了可能很长的延迟。 (第一次在我的机器上启动时~~两秒钟)
如果以下限制适用,我希望有更快的方法:
此检测不适用于公共应用程序,仅适用于Windows平台上的内部使用。
是否有我可以阅读的注册表路径或我可以解析的一些配置文件?
答案 0 :(得分:19)
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
答案 1 :(得分:5)
Windows>开始> cmd>
C:> for %i in (java.exe) do @echo. %~$PATH:i
如果安装了JRE,则会显示Path,
例如:C:\Windows\System32\java.exe
答案 2 :(得分:4)
注册表可能是最简单的路径 - 假设已经运行了安装程序。已安装的版本可在以下各种子项中找到:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
如果用户已手动配置其环境,您可以检查JAVA_HOME
/遍历PATH
变量并检查文件版本。演示WSH脚本:
'file: whereJava.vbs
'usage: cscript /Nologo whereJava.vbs
'find Java 6 from registry
Set objShell = CreateObject("WScript.Shell")
Wscript.Echo objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\" &_
"JavaSoft\Java Runtime Environment\1.6\JavaHome")
'check file version of java.exe
javaHome = objShell.Environment.item("JAVA_HOME")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo objFSO.GetFileVersion(javaHome & "\bin\java.exe")
见GetFileVersionInfo和公司。主要版本号似乎与Java版本匹配(5,6)。在不调用JVM的情况下,您可以执行有限的操作。
答案 3 :(得分:1)
相反,您可以尝试在命令提示符下运行命令“java -version”。
如果JRE未正确安装但是从其他计算机复制,则实际上可能无法正常工作。 一个确定的镜头解决方法是导航到JRE安装目录“ C:\ Program Files \ Java \ ”,从命令提示符导航到bin文件夹,然后运行“ java -version ”。 输出将是安装版本,以及您正在寻找的所有相关信息。
答案 4 :(得分:1)
Windows机器上可以安装任意数量的JRE和JDK,但只有一个将设置HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java运行时环境。
您可能还会考虑“JAVA_HOME”和“Path”环境变量,因为它们会影响命令行java调用。