首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntelliJ IDEA全局环境变量配置

IntelliJ IDEA全局环境变量配置
EN

Stack Overflow用户
提问于 2017-08-15 15:32:21
回答 8查看 66.8K关注 0票数 39

我需要在我所有的想法运行配置中使用环境变量。目前我使用run->edit configurations->and,然后在选定的配置中输入env变量。然而,当我需要运行孤立的测试场景时,这是非常乏味的,因为每个场景都创建了一个新的运行配置,并且我需要再次输入变量。

我尝试使用export SOME_VAR="some value"在各种会话配置文件中设置linux系统中的env变量:/etc/profile/etc/bash.bashrc~/.bashrc~/.profile,但是intellij在运行过程中似乎忽略了这些vars,即使我从intellij内置终端启动echo ${SOME_VAR}时也会显示正确的输出。

我还尝试使用intellij .env文件插件,然后在项目根目录中的.env文件中设置SOME_VAR=some value。也没起作用。

EN

回答 8

Stack Overflow用户

发布于 2018-06-13 11:57:35

我找到了一个在IntelliJ上设置环境变量的解决方案,它对我非常有用,而且非常简单。让我来给你展示。

这是我们用来测试的程序(您可以复制和粘贴它):

代码语言:javascript
复制
package com.javasd.intelijenv;

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.format("%s=%s%n", envName, env.get(envName));
        }

        System.out.println("My home directory: " + System.getenv("MY_VAR"));
    }
} 

这个程序基本上加载所有环境变量,在控制台上显示它们,并尝试显示env变量。此外,它还假设您在调用 IDEA之前已经创建了MY_VAR env变量,方法如下:

代码语言:javascript
复制
$ export MY_VAR="This is my adorable var :)"
$ idea

请注意,我们在创建环境变量的同一个终端(或会话或窗口)中调用IntelliJ IDEA。如果您创建变量并从图标调用该想法,则解决方案将无法工作,因为该想法将创建自己的会话。

因此,如果在没有正确配置的情况下运行它,您将在控制台中得到如下内容:

请注意,您只有几个变量,并且MY_VAR为null。

下面是用于加载环境变量的配置:

  1. 单击项目中的“选择运行/调试配置”并选择“编辑配置”:

  1. 然后,点击“.”按钮在“环境变量”一节的右侧:

  1. 你会看到弹出式的。选中左下角的复选框,该复选框的标签为“包含父环境变量”:

就这样!

如果你现在运行你的程序,你会在你的控制台上看到这样的东西:

您可以看到所有的环境变量,当然,您的"MY_VAR“变量,有正确的值!

超越基础

通常,出于安全考虑,我们不希望所有的环境变量都是可见的。我们要做的是,只在IntelliJ (或我们的程序)运行时使这些变量可见。

因此,无论是在调用Intellij之前还是在关闭Intellij之前,都不应该在环境中看到敏感变量。

此外,您希望将这些变量保存在文件中(通常具有.env扩展名),以便于操作和安全考虑。

要做到这一点,有一些有用的程序(你可以谷歌他们),但我最喜欢的一个是环境-cmd

假设您有一个具有以下内容的test.env文件:

代码语言:javascript
复制
MY_TEST_VAR=I live in the test.env file.

如果您通过这样做来调用IntelliJ:

代码语言:javascript
复制
$ env-cmd test.env idea

然后编辑您的程序以显示"MY_TEST_VAR",并运行它,您将在IntelliJ的控制台上看到如下内容:

但是,如果退出IntelliJ并查找变量,您将看到变量不存在(可以使用env确认):

此时,我希望您能够使用自己的解决方案:创建包含内部变量的shell脚本,测试其他程序(戴伦夫[医]自动等),等等。

享受吧!

..。

票数 17
EN

Stack Overflow用户

发布于 2019-11-18 16:47:02

在我看来,真正的问题是马特说了些什么。如果您想从快捷方式启动IntelliJ,那么您必须编辑它:打开.desktop文件,并将/bin/bash -c -i添加到启动命令的开头。该文件应该如下所示:

代码语言:javascript
复制
[Desktop Entry]
Exec=/bin/bash -i -c "/path/to/idea/bin/idea.sh" %f
Name=IntelliJ IDEA Ultimate
Type=Application
Version=1.0
票数 14
EN

Stack Overflow用户

发布于 2018-07-20 01:17:08

如果使用了Maven,那么可以在文件->Settings->Build、Execution、Deployment->Build > Maven ->Runner下配置特定于Maven的环境变量,然后在任何Maven配置中重用这些变量。

设置环境变量的相同机制也可能适用于不同的运行程序。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45696203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档