批处理文件,用于运行带参数的jar文件

Vex*_*toR 9 java jar batch-file

如何运行批处理文件并将参数传递给jar文件?

这不起作用

mybat.bat

java -jar log_parser.jar %1 %2 %3 %4
Run Code Online (Sandbox Code Playgroud)

运行bat文件

C:\>log_parser.bat -file=C:\\trace_small.log -str=Storing
Run Code Online (Sandbox Code Playgroud)

java只能看到 -file

gas*_*ush 22

我只是尝试了一个小的java程序,它只将参数转储到屏幕上:

public static void main(String[] args)
{
    for(String s : args)
    {
        System.out.println(s);
    }
}   
Run Code Online (Sandbox Code Playgroud)

和以下批处理文件:

java -jar test.jar %1 %2 %3 %4
Run Code Online (Sandbox Code Playgroud)

我最终得到了以下结果

-file
C:\\trace_small.log
-str
Storing
Run Code Online (Sandbox Code Playgroud)

对于与您相同的命令行...等号'='消失.现在,如果您将批处理文件转发到此:

java -jar test.jar %*
Run Code Online (Sandbox Code Playgroud)

你会得到另一个结果(这可能是你所期望的 - 不清楚)

-file=C:\\trace_small.log
-str=Storing
Run Code Online (Sandbox Code Playgroud)

这个%*语法的优点是,通过接受任意数量的参数,它更具可扩展性.

希望这会有所帮助,但我建议您查看您的代码并添加一些调试语句,以了解您"丢失"输入的某些部分.