【问题标题】:Batch script to check the java home检查 java home 的批处理脚本
【发布时间】:2014-07-09 10:12:08
【问题描述】:

我需要检查我的系统中是否有 java home显示错误。是否可能。目前我正在使用以下脚本。任何人都可以建议对脚本进行哪些更改。或者是否需要任何新脚本。 提前致谢

@echo off 
setlocal enableextensions disabledelayedexpansion

:: possible locations under HKLM\SOFTWARE of JavaSoft registry data
set "javaNativeVersion="
set "java32ON64=Wow6432Node\"

:: for variables
::    %%k = HKLM\SOFTWARE subkeys where to search for JavaSoft key
::    %%j = full path of "Java Runtime Environment" key under %%k
::    %%v = current java version
::    %%e = path to java

set "javaDir="
set "javaVersion="
for %%k in ( "%javaNativeVersion%" "%java32ON64%") do if not defined javaDir (
    for %%j in (
        "HKLM\SOFTWARE\%%~kJavaSoft\Java Runtime Environment"
    ) do for /f "tokens=3" %%v in (
        'reg query "%%~j" /v "CurrentVersion" 2^>nul ^| find /i "CurrentVersion"'
    ) do for /f "tokens=2,*" %%d in (
        'reg query "%%~j\%%v" /v "JavaHome"   2^>nul ^| find /i "JavaHome"'
    ) do ( set "javaDir=%%~e" & set "javaVersion=%%v" )
)

if not defined javaDir (
    echo Java not found
) else (
    echo JAVA_HOME="%javaDir%"
    echo JAVA_VERSION="%javaVersion%"
)

endlocal
pause

【问题讨论】:

  • 你的问题是什么?
  • 嗨,我需要一个具有上述先决条件的批处理脚本。我上面的脚本只显示 java home 和 java 版本。

标签: windows batch-file command java-home


【解决方案1】:

您可以使用LSSGRTEQU等来批量比较字符串。

  • EQU = 等于
  • NEQ = 不等于
  • LSS = 小于
  • LEQ = 小于或等于
  • GTR = 大于
  • GEQ = 大于或等于

由于您在%javaVersion% 中获得了版本信息,因此您只需要显示错误消息即可。

您可以将代码修改为:

if not defined javaDir (
    echo Java not found
) else (
    echo JAVA_HOME="%javaDir%"
    echo JAVA_VERSION="%javaVersion%"
    if "%javaVersion%" LSS "1.7" (
        echo Java version is too low!
        goto exit
    ) 
    if "%javaVersion%" GTR "1.7" (
        echo JAVA version is too high!
        goto exit
    )
)

:exit
endlocal
pause

【讨论】:

  • 感谢 Sid Zhang 的回答。但是如果系统中未设置 java home,则需要显示错误消息。此代码段是否可能。我需要进行哪些更改
  • 即使系统中没有设置java home,它也会在输出中显示java home值
  • @user3400717 在HKLM\SOFTWARE\JavaSoft\Java Runtime Environment 中设置的Java Home 可能与环境变量中的不同。我建议你使用这种方式来设置JAVA_HOMEchriskopec.com/blog/2009/jun/15/…
猜你喜欢
  • 1970-01-01
  • 2020-05-22
  • 2018-04-02
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多