批处理文件以运行带有参数的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

我刚刚尝试了一个只将参数转储到屏幕上的小型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)你可以尝试使用

"-Dfile=C:\trace_small.log-Dstr=存储"

变量将被设置为Java System Property,但不会被设置为主方法中的Parameters。

2)尝试放置没有"="的参数

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

在我的例子中,我使用以下bat文件:

@echo off
PATH_TO_JREbinjava.exe -jar -Denable=true your_file.jar

在这种特殊的情况下,在java代码中,我可以得到这样的参数"enable":

Boolean.getBoolean("enable") 

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

> cd "C:Program FilesJavajre1.8.0_161bin"
> javaw.exe -Xmx2048m -jar "C:Program Files (x86)JOSMjosm-tested.jar"

最新更新