当前位置: 首页 > 知识库问答 >
问题:

Spring STS 不加载环境变量,但运行专家工作

许琛
2023-03-14

我用的是Mac OS Mojave和Spring STS版本3.9.7。

所以我尝试加载一些环境变量,比如数据库用户名

我使用此命令设置用户名环境变量:

export ABC_DB_UNAME=some_username

当我ABC_DB_UNAME或printenv时,我可以看到它的价值。

在我的application.properties文件中,我将用户名设置如下:

spring.datasource.username=${ABC_DB_UNAME}

现在,当从IDE本身运行spring-sts时,它无法获取值,并抛出一个异常

访问被拒绝ABC_DB_UNAME@database_endpoint。

它清楚地表明spring-sts没有拾取我的环境变量。

对我来说更扭曲的是,当我使用下面的命令通过maven运行Spring应用程序时,它会获取环境变量,并且工作正常。

mvn spring-boot:run

但是使用mvn命令,我不知道如何让IDE触发断点来调试。

EDIT:使用代码Systemhtml" target="_blank">测试并尝试打印环境变量。getenv(“ABC_DB_UNAME”)和系统。getProperty(“ABC_DB_UNAME”)也返回null,但maven仍然有效。

共有1个答案

公冶翰池
2023-03-14

我认为环境变量是在终端中临时设置的。因此,mvnSpring启动:运行工作。您可以在不同的终端中运行它,它应该会失败

您需要在bashrc (mac)中设置${ABC_DB_UNAME}来永久保存它。或者您可以在运行应用程序时将环境变量作为参数传递。

 类似资料:
  • 所以我正确地设置了我的环境变量和它们的值。 如何设置环境变量,以便在命令提示符上输入它们的名称就足以运行它们的值?

  • 这是我的next.config.js文件:

  • 从2.7.3版本开始,Dubbo会自动从约定key中读取配置,并将配置以Key-Value的形式写入到URL中。 支持的key有以下两个: dubbo.labels,指定一些列配置到URL中的键值对,通常通过JVM -D或系统环境变量指定。 增加以下配置: # JVM -Ddubbo.labels = "tag1=value1; tag2=value2" # 环境变量 DUBBO_LAB

  • 问题内容: 我在 根文件夹 文件中有.env 文件 并将文件放在文件夹中。文件的第一行是 我还尝试了以下操作: ; ; 但是,当我从 命令提示符* 运行文件时,不会加载我的env变量 * 如果我使用 Visual Studio 并按 F5 ,它将加载! 我不确定我在做什么错,我想念什么。任何建议都非常感谢。谢谢。 问题答案: 使用如何? 您的问题似乎是执行路径。

  • 我试图运行一个读取环境变量的应用程序,该环境变量包含大约22K个字符的JSON。项目设置告诉我使用来正确配置它,但是当我使用windows时,这些命令不起作用。 我尝试使用GUI环境变量将文件的内容复制到变量中,但是它的输入会将值截断到一定的限制,这个限制甚至不到文件的一半。在此之后,我尝试使用Powershell和以下命令设置变量: 然后用以下命令保存结果:

  • laravel 在启动时,会加载项目的 env 文件,本文将会详细介绍 env 文件的使用与源码的分析。 ENV 文件的使用 多环境 ENV 文件的设置 一、在项目写多个 ENV 文件,例如三个 env 文件: .env.development、 .env.staging、 .env.production, 这三个文件中分别针对不同环境为某些变量配置了不同的值, 二、配置 APP_ENV 环境变量