批处理自动设置JAVA环境变量报错求教
写了一个很简单的一个脚本,用于自动设置环境变量。参照脚本网址为:http://www.cnblogs.com/madgoat/articles/1087038.html,代码如下:
@echo 你提供的jdk安装目录为:%1
@echo off
IF EXIST %1\bin\java.exe (
rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量
@setx JAVA_HOME %1
@setx path %JAVA_HOME%\bin;%path%
@setx classpath %classpath%;.
@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar
@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar
@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar
@echo on
@echo Java 2 SDK 环境参数设置完毕,正常退出。
) ELSE (
IF %1=="" (
rem 如没有提供安装目录,提示之后退出
@echo on
@echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
) ELSE (
rem 如果提供非空的安装目录但没有bin\java.exe,则指定的目录为错误的目录
@echo on
@echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
)
)
我的jdk安装地址为:C:\Program Files\Java\jdk1.6.0_26,所以将脚本改为
@echo jdk安装目录为:C:\Program Files\Java\jdk1.6.0_26
@echo off
IF EXIST C:\Program Files\Java\jdk1.6.0_26\bin\java.exe (
rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量
@setx JAVA_HOME C:\Program Files\Java\jdk1.6.0_26
@setx path %JAVA_HOME%\bin;%path%
@setx classpath %classpath%;.
@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar
@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar
@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar
@echo on
@echo Java 2 SDK 环境参数设置完毕,正常退出。
) ELSE (
IF C:\Program Files\Java\jdk1.6.0_26=="" (
rem 如没有提供安装目录,提示之后退出
@echo on
@echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
) ELSE (
rem 如果提供非空的安装目录但没有bin\java.exe,则指定的目录为错误的目录
@echo on
@echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
)
)
命名为Env.bat将其置于C盘要目录下,在命令行中调用及结果显示如图:

显示错误有:
1、无效语法。默认选项不允许超过‘2’次
2、最下面 “此时不应有Files\Java\jdk1.6.0_26=="" ”
这两点怎么解释
执行过后 环境变量面板的用户变量增加了 classpath 值为 ;\jre\lib\rt.jar
但 JAVA_HOME(值为C:\Program Files\Java\jdk1.6.0_26)和classpath(值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar;)都应在系统变量里。
JAVA JAVA环境变量 批处理
[解决办法]
@echo jdk安装目录为:C:\Program Files\Java\jdk1.6.0_26
@echo off
IF EXIST C:\Program Files\Java\jdk1.6.0_26\bin\java.exe (
rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量
@setx JAVA_HOME "C:\Program Files\Java\jdk1.6.0_26"
@setx path "%JAVA_HOME%\bin;%path%"
@setx classpath ".;%classpath%"
@setx classpath "%classpath%;%JAVA_HOME%\lib\tools.jar"
@setx classpath "%classpath%;%JAVA_HOME%\lib\dt.jar"
@setx classpath "%classpath%;%JAVA_HOME%\jre\lib\rt.jar"
@echo on
@echo Java 2 SDK 环境参数设置完毕,正常退出。
) ELSE (
IF C:\Program Files\Java\jdk1.6.0_26=="" (
rem 如没有提供安装目录,提示之后退出
@echo on
@echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置
。
) ELSE (
rem 如果提供非空的安装目录但没有bin\java.exe,则指定的目录为错误的目
录
@echo on
@echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置
。
)
)
setx 第二个参数加引号
[解决办法]
建议你一句句手动执行,按句检查执行效果