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

时间:2011-06-10 13:20:32

标签: java batch-file jar

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

这不起作用

mybat.bat

java -jar log_parser.jar %1 %2 %3 %4

运行bat文件

C:\>log_parser.bat -file=C:\\trace_small.log -str=Storing

java只能看到-file

4 个答案:

答案 0 :(得分:22)

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

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

以及以下批处理文件:

java -jar test.jar %1 %2 %3 %4

我最终得到了以下结果

-file
C:\\trace_small.log
-str
Storing

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

java -jar test.jar %*

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

-file=C:\\trace_small.log
-str=Storing

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

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

答案 1 :(得分:0)

1) 你可以尝试使用

  

“ - Dfile = C:\ trace_small.log   -Dstr =贮藏“

变量将设置为Java系统属性,但不会设置为主方法的参数。

2) 尝试不带'='

的参数
  

log_parser.bat -file   C:\ trace_small.log -str存储

答案 2 :(得分:0)

在我的情况下,我使用以下bat文件:

@echo off
PATH_TO_JRE\bin\java.exe -jar -Denable=true your_file.jar

在这个特殊情况下,然后在java代码中,我可以得到这样的参数“启用”:

Boolean.getBoolean("enable") 

答案 3 :(得分:0)

示例在Windows 10 x64中打开街道地图编辑器

> cd "C:\Program Files\Java\jre1.8.0_161\bin\"

> javaw.exe -Xmx2048m -jar "C:\Program Files (x86)\JOSM\josm-tested.jar"