gpt4 book ai didi

java - 在 .conf 文件中为 spring boot 应用程序访问环境变量

转载 作者:行者123 更新时间:2023-11-30 10:35:42 24 4
gpt4 key购买 nike

我已经通过执行命令设置了环境变量

export test=abcd

当我运行 printenv 命令时,我可以看到 test=abcd

我已经部署了一个 springboot.jar 应用程序,我正在从 springboot.conf 文件传递​​ JAVA_OPTS。

JAVA_OPTS='-Dspring.profiles.active=aaa -Denv=$test'

我通过 service springboot start 启动了应用程序。当我检查过程时,env 变量没有 $test 环境变量的值。

/usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -Dspring.profiles.active=aaa -Denv=.

如何访问 conf 文件中的环境变量?我在某处读到,当作为服务运行时,环境变量将被剥离。基本上我想作为 service springboot start 运行,它在内部执行以下命令

java -Dspring.profiles.active=aws -Denv=${env 环境变量设置的内容} -jar springboot.jar

我已经尝试了以下配置,但没有任何效果

JAVA_OPTS='-Dspring.profiles.active=aaa -Denv='$test
JAVA_OPTS='-Dspring.profiles.active=aaa -Denv='${test}
JAVA_OPTS='-Dspring.profiles.active=aaa -Denv=${test}'
JAVA_OPTS="-Dspring.profiles.active=aaa -Denv=$test"

最佳答案

小心你的报价。假设您使用“普通”shell,变量将不会被替换为单引号。

java -Dspring.profiles.active=aws -Denv="$myvariable"-jar springboot.jar 应该导致 env 在 JVM 中可用,无论是否将其作为服务运行。

如果您无法让它工作,请尝试指定一个像这样的硬编码值 java -Dspring.profiles.active=aws -Denv=foo -jar springboot.jar。如果 env 现在在 JVM 中可用,则问题出在您的 shell 或运行机制上。验证运行命令的用户(即您是否使用 sudo?)是否设置了变量。

关于java - 在 .conf 文件中为 spring boot 应用程序访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40990063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com