批处理文件以运行带参数的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,但不会设置为main方法的Parameters。
2)尝试不带’=’的参数
log_parser.bat -file C:\ trace_small.log -str存储
在我的情况下,我使用以下bat文件:
@echo off PATH_TO_JRE\bin\java.exe -jar -Denable=true your_file.jar
在这个特殊情况下,然后在java代码中,我可以得到这样的参数“启用”:
Boolean.getBoolean("enable")
例如在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"