intellij-idea - IntelliJ IDEA 全局环境变量配置

标签 intellij-idea environment-variables intellij-plugin

我需要在我的所有想法运行配置中使用环境变量。我目前使用 运行 -> 编辑配置 -> 然后在选定的配置中输入环境变量 .然而,当我需要运行独立的测试场景时,这是非常乏味的,因为每个场景都会创建一个新的运行配置,我需要重新输入变量。

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

我也尝试使用 intellij .env file plugin然后设置 SOME_VAR=some value.env项目根目录下的文件。也没有用。

最佳答案

我找到了一个在 IntelliJ 上设置环境变量的解决方案,它对我来说效果很好,而且非常简单。让我演示给你看。

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

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 变量。此外,它假定您已经创建了 MY_VAR 环境变量 在调用 IntelliJ IDEA 之前 ,通过做类似的事情:
$ export MY_VAR="This is my adorable var :)"
$ idea

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

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

enter image description here

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

这是我用来加载环境变量的配置:
  • 单击项目中的“选择运行/调试配置”并选择“编辑配置”:

  • enter image description here
  • 然后,单击“环境变量”部分右侧带有“...”的按钮:

  • enter image description here
  • 你会看到一个弹出窗口。选中左下角带有“包括父环境变量”标签的复选框:

  • enter image description here

    就是这样!!!

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

    enter image description here

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

    超越基础

    通常,出于安全原因,我们不想让所有环境变量都可见。我们想要做的是使这些变量仅在 IntelliJ(或我们的程序)运行时可见。

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

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

    为了实现这一点,有一些有用的程序(你可以谷歌它们),但我最喜欢的是 env-cmd .

    假设您有一个 test.env 包含以下内容的文件:
    MY_TEST_VAR=I live in the test.env file.
    

    如果您通过执行以下操作调用 IntelliJ:
    $ env-cmd test.env idea
    

    并编辑您的程序以显示“MY_TEST_VAR”,然后运行它,您将在 IntelliJ 的控制台上看到:

    enter image description here

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

    enter image description here

    在这一点上,我希望您能够使用自己的解决方案:创建内部设置了变量的 shell 脚本,测试其他程序( direnvautoenv 等),等等。

    享受!

    ...

    关于intellij-idea - IntelliJ IDEA 全局环境变量配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696203/

    相关文章:

    java - Maven web 项目 HTTP 状态 [404] – [未找到]

    amazon-web-services - 有没有办法在 AWS Elastic Beanstalk 中隐藏环境变量?

    apache-spark - 设置 PYSPARK_SUBMIT_ARGS 会导致创建 SparkContext 失败

    intellij-idea - 自定义 pycharm 插件始终禁用

    java - 如何以编程方式执行 Java IDE 对方法引用的搜索?

    java - 如何使用额外的资源部署 IntelliJ 插件?

    java - 在intellij ide中查找与某个类相关的信息

    intellij-idea - IntelliJ 无法显示大文件?

    windows - 这些奇怪的环境变量是什么?

    intellij-idea - IntelliJ坏插件如何启动