【问题标题】:Unable to read JVM arguments in Spring boot无法在 Spring Boot 中读取 JVM 参数
【发布时间】:2015-08-05 09:48:07
【问题描述】:

我在命令提示符下运行一个 spring boot jar,传递 jvm 参数,如

java -jar myjarname.jar -Denvironment=dev 

java -jar myjarname.jar --environment=dev

并尝试使用 System.getProperty("environment") 在我的应用程序中读取值 environment。但它给了我空值。请帮忙!!

【问题讨论】:

  • --environment=dev 不会显示为系统属性。使用-Denvironment=dev 的形式是正确的。但是你为什么要使用System.getProperty("environment") 来阅读它呢?使用@Value-injection 更容易。
  • 你是对的。但我有一个依赖 jar,他们正在使用 System.getproperty() 方法读取。如果我使用 mvn spring-boot:run 命令,-Denvironment 方式有效。我需要使用 java 命令运行,如果我传递这个参数,它就不起作用..
  • 请检查github.com/deichten/spring-boot-env-vars 我设置了一个超级简单的演示项目,它对我有用。重要提示:尝试使用java -Denvironment=dev -jar myjarname.jar 启动应用程序。原因是 jar 之后的所有东西都作为参数传递给 Spring 应用程序。
  • 谢谢@hrrgttnchml..你是对的..我也是从另一个弹簧链接找到的..spring.io/blog/2014/03/07/deploying-spring-boot-applications

标签: java spring spring-boot


【解决方案1】:

在指定 app.jar 之前,您必须传递要让您的应用程序可以访问的参数。所以

java -jar application.jar -Denvironment=dev 

将不起作用,而

java -Denvironment=dev -jar application.jar

会起作用的。

【讨论】:

    猜你喜欢
    • 2011-08-01
    • 2019-02-02
    • 2019-01-15
    • 2017-08-31
    • 2020-04-26
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多