Kotlin-System.getProperty无法解析命令行参数

时间:2018-12-18 11:27:56

标签: spring kotlin

我有一些代码可以动态加载application.properties

fun loadDefaultProperties(): Properties {
    val configPath = System.getProperty("spring.config.location")
    val resource = FileSystemResource(configPath)
    return PropertiesLoaderUtils.loadProperties(resource)
}

但是当我运行命令时...

java -jar my.jar -Dspring.config.location=my/location/application.properties

... System.getProperty("spring.config.location")返回null,因此我得到一个IllegalArgumentException,因为路径是null

为什么我不能从命令行读取参数?

2 个答案:

答案 0 :(得分:5)

您传递的顺序错误。像这样传递它们:

java "-Dspring.config.location=my/location/application.properties" -jar my.jar 

否则,它们是程序参数。我刚刚在MacOS以及

上进行了测试
java -Dspring.config.location=my/location/application.properties -jar my.jar 

(不带引号)起作用。

答案 1 :(得分:0)

您不需要引号吗?

java -jar my.jar -Dspring.config.location="my/location/application.properties"