在批处理脚本中执行java代码时出错

在批处理脚本中执行java代码时出错,java,windows,batch-file,Java,Windows,Batch File,这是我执行java代码的批处理脚本- @echo off @setlocal set JARS=log4j.jar;commons-logging-1.0.4.jar set abc="JAVA_HOME\bin\java" -cp %JARS%; "C:\Documents and settings\Administrator\Desktop\Temp" Test echo %abc% %abc% 我得到了这个错误- The system cannot find the path sp

这是我执行java代码的批处理脚本-

@echo off
@setlocal

set JARS=log4j.jar;commons-logging-1.0.4.jar
set abc="JAVA_HOME\bin\java" -cp %JARS%; "C:\Documents and settings\Administrator\Desktop\Temp" Test

echo %abc%

%abc%
我得到了这个错误-

The system cannot find the path specified.

我已将编译的类文件复制到同一位置。但为了安全起见,我提供了上面类文件的路径。我哪里出错了吗?

这是上述答案的综合。一切都是正确的

@echo off

set runJava="%JAVA_HOME%\bin\java" -cp log4j.jar;commons-logging-1.0.4.jar "C:\Documents and settings\Administrator\Desktop\Temp\Test.class"

echo %runJava%

%runJava%

对不起,没有太多时间,但是您不想要JAVA_HOME的输出吗

为此,您将使用%like:

set x="%JAVA_HOME%\bin\java"
首先,您需要:

set cmd="%JAVA_HOME%\bin\java" -cp "log4j.jar;commons-logging-1.0.4.jar;C:\Documents and settings\Administrator\Desktop\Temp" Test
更新:

显示了类名称“Test”应该如何合并

@echo off
@setlocal

set command="%JAVA_HOME%\bin\java" -cp log4j.jar;commons-logging-1.0.4.jar;"C:\Documents and settings\Administrator\Desktop\Temp" Test

echo %command%

%command%
  • cmd
    是保留字,不能像 那个
  • 系统变量应为待替换的
    %
    'd
  • 对包含空格的路径使用双引号
  • 您不能提供运行类的类的路径。你必须 给出类名
  • 这对我有用

    @echo off   
    set JAVA_HOME="C:\Program Files\java\jre6"
    set JARS=".;C:\Program Files\lib\log4j.jar;C:\Program Files\lib\commons-logging-1.1.1.jar;"
    set runJava=%JAVA_HOME%\bin\java -cp %JARS% Test
    %runJava%
    

    不幸的是,结果仍然是一样的。我对答案做了重大修改。忽略上面的评论。尝试你的建议。我收到了同样的信息!!我真的不知道哪里出了问题。我使用以下命令来运行jar“%\u JAVACMD%%RUNTIME\u OPTS%-Djava.ext.dirs=%ext\u dirs%-jar dist\some.jar%*%,其中ext\u dirs包含所有必需jar的列表。运行一个类可能会有类似的效果。结果仍然是一样的。实际上,“Test”是类名。我应该用“.class”来附加它吗?@hari是的,用“.class”来附加它。class@hari请参见下面我的回答。此外,大多数Java新手在
    bin
    目录中设置
    Java\u HOME
    的值。不要这样做。@hari您能显示
    %JAVA\u HOME%
    %command%
    的输出吗?你不工作是什么意思?它是否仍然说系统找不到指定的路径。?@hari我从来没有让你把
    Test.class
    放在那里!那不行!另外,在哪里使用
    %JAVA\u HOME%
    ?我看它根本没有被替换!如果您的-cp设置仍然不正确,请查看我的答案。-cp参数是一个用引号括起来的字符串,在“;”之后没有空格。