使用jCommander

时间:2017-07-13 08:35:07

标签: java spring-boot jcommander

我正在使用JCommander API进行Spring Boot - Spring Batch项目。

Project有多个作业,我需要将作业名称作为参数传递,以便我可以启动特定的作业。

java -jar myJar.jar -jobName job1

现在,如果我的job1正在运行,并且我希望当时启动job2,那么我无法这样做,因为端口已在使用中。因此,只有在job2完成后才能启动job1

如果我尝试在不同的端口启动job2

java -jar myJar.jar -jobName job2 --server.port=8090

然后jCommander没有让它通过,因为我没有在JCommander配置中定义server.port,即使我这样做,Spring Boot仅从属性文件中选择属性并尝试在同一端口运行 - {{1} }。

如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

documentation for Spring Boot说:

  

您可以使用属性文件,YAML文件,环境变量和   外部化配置的命令行参数。

您应该能够像这样配置server.port:

java -jar myJar.jar -Dserver.port=8090 -jobName job2

afaik你也可以设置 SERVER_PORT 环境变量:

SERVER_PORT=8090 java -jar myJar.jar -jobName job2