我设置了一个环境变量(在IDE Settings -> Path Variables下)
IDE Settings -> Path Variables
APP_HOME = /path/to/app_home
字符串我的一个测试失败了,
System.out.println("APP HOME: " + APP_HOME);
型与
APP HOME: null/
型看起来env变量没有被读取。我错过了什么?
5hcedyr01#
Path Variables对话框中与环境变量无关。
可以在操作系统中指定环境变量,也可以在“运行”配置中自定义环境变量:
的数据
sc4hvdpw2#
当IntelliJ Build and run属性使用Gradle时,我无法让环境变量工作。我不确定根本原因是什么,但切换到IntelliJ IDEA解决了问题。转到Preferences-> Build, Execution, Deployment-> Build Tools-> Gradle。然后将Build and run using:更改为IntelliJ IDEA。x1c 0d1x的数据
Build and run
IntelliJ IDEA
Preferences
Build, Execution, Deployment
Build Tools
Gradle
Build and run using:
llmtgqce3#
如果上面的答案+重新启动IDE没有做,尝试重新启动“Jetbrains插件”,如果你使用它,这对我来说已经做到了
wb1gzix04#
可以在intellij“运行说明”中引用intellij“路径变量”。在“路径变量”中创建一个变量,例如ANALYTICS_VERSION。在“环境变量”下的“运行配置”中,添加以下示例:
ANALYTICS_VERSION
ANALYTICS_LOAD_LOCATION=$MAVEN_REPOSITORY$\com\my\company\analytics\$ANALYTICS_VERSION$\bin
字符串要回答最初的问题,您需要在运行配置中添加一个APP_HOME环境变量,该变量引用路径变量:
APP_HOME
APP_HOME=$APP_HOME$
型
piztneat5#
这并不是对问题的直接回答,更多的是对评论中问题的回答:“当env变量改变时如何重新加载?”。如果你的env变量来自操作系统,你不幸的是没有选择,正如@Neil McGuigan所说。但如果它来自另一个密钥管理工具,如HashiCorp Vault,则有一个maven插件允许获取并将其注入JVM。https://homeofthewizard.github.io/vault-maven-plugin/因此,如果您在intelliJ上将应用程序作为maven目标运行,您的env变量将是可访问的。另外,它的配置是项目范围的,因为它将在pom.xml中,所以不需要为intelliJ上的每次运行/调试指定env变量。
5条答案
按热度按时间5hcedyr01#
Path Variables对话框中与环境变量无关。
可以在操作系统中指定环境变量,也可以在“运行”配置中自定义环境变量:
的数据
sc4hvdpw2#
当IntelliJ
Build and run
属性使用Gradle时,我无法让环境变量工作。我不确定根本原因是什么,但切换到IntelliJ IDEA
解决了问题。转到Preferences
->Build, Execution, Deployment
->Build Tools
->Gradle
。然后将Build and run using:
更改为IntelliJ IDEA
。x1c 0d1x的数据
llmtgqce3#
如果上面的答案+重新启动IDE没有做,尝试重新启动“Jetbrains插件”,如果你使用它,这对我来说已经做到了
wb1gzix04#
可以在intellij“运行说明”中引用intellij“路径变量”。
在“路径变量”中创建一个变量,例如
ANALYTICS_VERSION
。在“环境变量”下的“运行配置”中,添加以下示例:
字符串
要回答最初的问题,您需要在运行配置中添加一个
APP_HOME
环境变量,该变量引用路径变量:型
piztneat5#
这并不是对问题的直接回答,更多的是对评论中问题的回答:“当env变量改变时如何重新加载?”。
如果你的env变量来自操作系统,你不幸的是没有选择,正如@Neil McGuigan所说。
但如果它来自另一个密钥管理工具,如HashiCorp Vault,则有一个maven插件允许获取并将其注入JVM。
https://homeofthewizard.github.io/vault-maven-plugin/
因此,如果您在intelliJ上将应用程序作为maven目标运行,您的env变量将是可访问的。
另外,它的配置是项目范围的,因为它将在pom.xml中,所以不需要为intelliJ上的每次运行/调试指定env变量。