0

我有一个 test.bat 文件,我需要在其中编写一个脚本来检查 PATH VARIABLE 是否已安装 java?

 Conditions :-

  1) If yes then 
       a) Check for the java version .
       b) Check for JAVA_HOME env variable :-
           i) if no , create it.
           ii) if yes , get the JAVA_HOME value.
  2) If No then
   set JAVA_HOME to local path (embedded)



 I know the commands like :-
      For version
         -> java -version

      For variable path 
         -> echo %path%

      For Java variable path
         -> echo %JAVA_HOME%

但是如何在批处理文件中为这些条件编写脚本,即 .bat ?我对此很陌生,所以请给我您宝贵的答案或有用的链接。

4

3 回答 3

3

您可以检查类似的东西:

@echo off
if defined JAVA_HOME (
if exist "%JAVA_HOME%\bin\javac.exe" goto okJavac
)

echo Java not found
exit 1

%okJavac
echo Java path "%JAVA_HOME%"
rem the end of your script
于 2013-08-05T09:59:14.637 回答
2

尝试这个:

@ECHO OFF &SETLOCAL
for /f tokens^=2delims^=^"  %%a in ('java -version 2^>^&1') do set "JavaVersion=%%a"
IF NOT DEFINED JavaVersion ECHO no Java installed & GOTO :EOF
FOR /f "tokens=2delims=." %%a IN ("%JavaVersion%") DO SET "sub=%%a"

IF DEFINED ProgramFiles(x86) (
    IF NOT DEFINED JAVA_HOME SET "JAVA_HOME=%ProgramFiles(x86)%\Java\jre%sub%\bin"
) ELSE (
    IF NOT DEFINED JAVA_HOME SET "JAVA_HOME=%ProgramFiles%\Java\jre%sub%\bin"
)

SET "java_home"
PAUSE
于 2013-08-05T11:11:05.253 回答
1

检查相应的MS 指南以使用批处理文件。您可以按照此处 描述的方式检查java -version的输出

于 2013-08-05T10:03:32.870 回答