C#
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
Реестр, вероятно, будет самым простым путем - при условии, что была запущена программа установки. Установленные версии можно найти в различных подразделах в разделе:
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.
Вместо этого вы можете попробовать запустить команду «java -version» в командной строке.
На самом деле это может не сработать, если JRE не установлена должным образом, а скопирована с другой машины. Обходной путь Sure Shot - перейти в каталог установки JRE « C: \ Program Files \ Java \ », перейти в папку bin из командной строки и затем запустить « java -version ". На выходе будет версия установки и вся необходимая информация, которую вы ищете.
На компьютере с Windows может быть любое количество установленных JRE и JDK, но только один будет иметь набор HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment.
Вы также можете рассмотреть возможность использования Переменные среды «JAVA_HOME» и «Path», поскольку они будут влиять на вызовы Java из командной строки.