我有一些代码可以动态加载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
。
为什么我不能从命令行读取参数?
答案 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"