IntelliJ IDEA全局环境变量配置

hsgswve4  于 2023-08-03  发布在  IntelliJ IDEA
关注(0)|答案(9)|浏览(365)

我需要在我所有的理想运行配置中使用一个环境变量。我目前使用运行->编辑配置->,然后输入所选配置中的env变量。然而,当我需要运行独立的测试场景时,这是非常乏味的,因为每一个都创建了一个新的运行配置,我需要重新输入变量。
我尝试在我的linux系统中使用export SOME_VAR="some value"在各种会话配置文件中设置env变量:/etc/profile/etc/bash.bashrc~/.bashrc~/.profile,但IntelliJ似乎在运行期间忽略了这些变量,即使当我从IntelliJ内置终端启动echo ${SOME_VAR}时,它也显示了正确的输出。
我还尝试使用IntelliJ .env file plugin,然后在项目根目录下的.env文件中设置SOME_VAR=some value。也不管用。

r6l8ljro

r6l8ljro1#

我发现了一个在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变量。此外,它假定您在调用IntelliJ IDEA之前已经创建了MY_VARenv变量,方法如下:

$ export MY_VAR="This is my adorable var :)"
$ idea

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

因此,如果在没有正确配置的情况下运行它,您将在控制台中获得以下内容:
x1c 0d1x的数据
请注意,您只有几个变量,并且MY_VAR为null。

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

1.点击项目中的“Select Run/Debug Configurations”,然后选择“Edit Configurations”:



1.然后,单击“环境变量”部分右侧的带有“...”的按钮:



1.你会看到一个弹出窗口。选中左下角带有“Include parent environment variables”标签的复选框:



就是这样!!!**
如果你现在运行你的程序,你会在你的控制台上看到这样的东西:
x1c4d 1x的
你可以看到所有的环境变量,当然还有你的“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的控制台上看到这个:



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



在这一点上,我希望您能够使用自己的解决方案:创建包含变量的shell脚本,测试其他程序(direnvautoenv等),等等。
好好享受吧!

zfycwa2u

zfycwa2u2#

在我看来,真实的的问题是马特说的话。如果你想从快捷方式启动IntelliJ,那么你必须稍微编辑一下:打开.desktop文件,并将/bin/bash -c -i添加到启动命令的开头。该文件应类似于以下内容:

[Desktop Entry]
Exec=/bin/bash -i -c "/path/to/idea/bin/idea.sh" %f
Name=IntelliJ IDEA Ultimate
Type=Application
Version=1.0

字符串

bnlyeluc

bnlyeluc3#

如果使用Maven,可以在 * 文件->设置->构建,执行,部署->构建工具->Maven->运行程序下配置项目特定的环境变量 * 这些变量可以在任何Maven配置中重用。
设置环境变量的相同机制也可以用于不同的运行器。

92vpleto

92vpleto4#

问题是,IntelliJ没有“看到”在.bashrc中设置的环境变量(也可以在CrazyCoders中找到答案)。启用IntelliJ导入这些变量的最简单方法是从bash启动它,例如。通过输入intellij-idea-community。

bn31dyow

bn31dyow5#

我尝试了上面列出的各种方法,并将环境变量添加到终端配置中,Maven构建工具在某些上下文中有效,但在其他上下文中无效。然后,我终于找到了IntelliJ中真正适用于运行时进程的地方。因为为什么只有一个环境变量配置屏幕,而你可以有几个,使所有,但其中一个是错误的?^_^
如果您编辑创建运行配置的 template,并将环境变量 * 添加到模板 *,则它们应包含在以该模板开始的每个后续运行配置中。
这对JUnit模板特别有用,因为这意味着所有自定义环境变量都将被加载用于单元测试,而不管它们是从哪个范围执行的(单个方法、整个测试类、整个模块)。但一般来说,如果您首先编辑模板,那么之后创建的任何运行配置都将从模板继承环境变量。
从顶部菜单:运行编辑配置...→展开模板树→ (选择模板) →**环境变量:**→ (输入分号分隔的键值对列表或使用输入小部件)
对于自动生成的JUnit配置,您应该删除任何现有的配置,并让IntelliJ在您进行时重新创建新的配置;这些都将使用更新的JUnit模板和您的环境变量。

azpvetkf

azpvetkf6#

对于macOS,尝试添加/Applications/IntelliJ IDEA.app/Contents/bin/idea.properties

...
apple.awt.graphics.UseQuartz=true
apple.awt.fullscreencapturealldisplays=false
idea.jre.check=true
SOME_VAR=some value

字符串

4urapxun

4urapxun7#

由于没有其他答案在此提及,
将您的环境变量添加到**/etc/environment**,然后注销并重新登录。IntelliJ肯定会把它捡起来。

rm5edbpk

rm5edbpk8#

我找到了另一个棘手的解决方案:)
对于Linux用户来说,
只需在任何合适的位置创建一些shell脚本,如 * idea.sh *,其中包含此内容。

#!/bin/bash
export YOUR_ENV_VARIABLE=some value
cd ~/path_to_your_idea_folder/bin
bash ./idea.sh

字符串
使此脚本可执行并运行它。
此脚本将始终使用预定义的env变量运行IDE。

h5qlskok

h5qlskok9#

1.得到Open 'Edit Run/Debug configurations' dialogs

1.转到Modify options

1.选择Environment variables

  1. Active profiles

    下方的Environment variables出现新框

相关问题