批处理文件如何接受Java的参数?

批处理文件如何接受Java的参数?,java,windows,batch-file,command-line,Java,Windows,Batch File,Command Line,我正在尝试编写一个批处理文件(run.bat),可以这样调用: run.bat "whatever.log" 但在后台,批处理文件正在将参数(“whatever.log”)传递给以下命令: java -cp "fizz.jar;a.jar;b.jar;c.jar;d.jar" com.myapp.FizzDriver "whatever.log" 同样,如果运行:run.bat“blah.txt”,则该批处理文件将执行: java -cp "fizz.jar;a.jar;b.jar;c.ja

我正在尝试编写一个批处理文件(
run.bat
),可以这样调用:

run.bat "whatever.log"
但在后台,批处理文件正在将参数(
“whatever.log”
)传递给以下命令:

java -cp "fizz.jar;a.jar;b.jar;c.jar;d.jar" com.myapp.FizzDriver "whatever.log"
同样,如果运行:
run.bat“blah.txt”
,则该批处理文件将执行:

java -cp "fizz.jar;a.jar;b.jar;c.jar;d.jar" com.myapp.FizzDriver "blah.txt"
到目前为止,我在运行.bat时的最佳尝试是:

@ECHO OFF
%JAVA_HOME%\bin\java java -cp "fizz.jar;a.jar;b.jar;c.jar;d.jar" com.myapp.FizzDriver ???

但我不确定如何参数化参数(???)。我也不确定批处理文件是否丢失了任何内容,或者我编写它的方式是否不正确。思想?提前谢谢

您只需要放置%1,但您还有另一个问题。当您使用“java-jar”时,'-cp'参数将被忽略:类路径仅取自jar清单。

您只需要放置%1,但您还有另一个问题。使用“java-jar”时,'-cp'参数被忽略:类路径仅取自jar清单。

要传递一个命令行参数,请使用
%1
。如果需要传递多个参数,可以使用
%1%2
等,也可以使用
%*
一次性传递所有参数。

要传递一个命令行参数,请使用
%1
。如果您需要通过多个测试,您可以使用
%1%2
等,或者使用
%*
一次性通过所有测试。

谢谢@EJP-如果我使用Java命令行:
Java-cp“fizz.jar;a.jar;b.jar;c.jar;d.jar”com.myapp.FizzDriver%1
?(其中,
FizzDriver
fizz.jar
中的主类)。这会修复批处理文件吗?再次感谢!这将解决类路径问题,但这是一个倒退的步骤。您应该在JAR清单中指定
类路径
主类
。以这种方式完成封装。批处理文件所要做的就是运行JAR文件并传递参数()s。如果可以有多个参数,请指定
%1%2%3%4%5%6%7%8%9
。谢谢@EJP-如果我使用Java命令行:
Java-cp“fizz.jar;a.jar;b.jar;c.jar;d.jar”com.myapp.FizzDriver%1
?(其中,
FizzDriver
fizz.jar
中的主类)。这会修复批处理文件吗?再次感谢!这将解决类路径问题,但这是一个倒退的步骤。您应该在JAR清单中指定
类路径
主类
。以这种方式完成封装。批处理文件所要做的就是运行JAR文件并传递参数()s。如果可以有多个参数,请指定
%1%2%3%4%5%6%7%8%9