IntelliJ - 为什么终端具有不同的环境变量值

时间:2014-10-23 08:24:14

标签: java intellij-idea environment-variables java-8

我最近将Java 7替换为Java 8 IntelliJ中的所有常规应用程序运行顺畅 除了tomcat应用程序之外的所有应用程序 - 从cmd命令行运行但不从IntelliJ运行。

由于JRE_HOME定义中的错误,无法加载 我已经明确地在env变量和jdk设置中定义了JRE_HOME 我已经执行了

echo %jre_home%

在IntelliJ终端和cmd中都收到不同的值
(IntelliJ终端显示未更新的值。) 终端中的变量在哪里宣布?
我该如何改变它们?

8 个答案:

答案 0 :(得分:1)

如果通过JetBrains工具箱启动IntelliJ,则它将缓存$PATH变量,因此不会显示最近的更改。

只需关闭并重新打开JetBrains Toolbox

答案 1 :(得分:1)

使系统缓存无效应该可以解决问题。见JetBrains: Invalidate Cache

任何其他措施(如关闭项目和 IDE 似乎只能在每个项目的基础上工作,并且只能在一段时间后(当 IDE 检测到缓存本身无效时......)


编辑:
更正 - 不幸的是,在纠正了所有终端中的环境一段时间后,IntelliJ“恢复”到我的任何项目中的旧的、不正确的环境。现在我希望在重新启动后 - 正如 akuman8 发布的那样 - 问题得到解决。 (如果没有,我将坚持使用我选择的命令外壳外部 IDE,在那里一切正常......)

答案 2 :(得分:0)

AFAIKT,linux上的intellij终端与运行独立的终端会话相同。它位于IDE中,非常方便。

在回答问题时,"如何更改[终端环境变量]?"

我使用virtualenvwrapper管理终端的环境变量,用于不同的环境,例如开发,测试和生产。它对于Java开发和python开发一样好用。

https://virtualenvwrapper.readthedocs.org

答案 3 :(得分:0)

近5年后,我在Windows 10上遇到了同样的问题,不得不重新启动计算机来解决它。

答案 4 :(得分:0)

我不知道IntelliJ的旧版本,但是在2019.2.3中可以在项目设置中配置环境变量。请注意,您需要重新启动现有终端或创建新的终端选项卡才能看到效果。

enter image description here

答案 5 :(得分:0)

  1. 关闭所有IntellJ窗口以及当前可能使用错误SDK的任何进程。
  2. 导航至安装JDK的文件夹(例如C:\Program Files\Java)。
  3. 重命名错误的SDK,以其他方式重命名(例如jdk-11.0.5.OLD)。如果无法执行此操作,则可能仍然有使用该SDK运行的进程。回到1。
  4. 再次启动IntelliJ。

答案 6 :(得分:0)

对我来说,这是因为IntelliJ IDEA并未将外壳作为“登录”外壳启动。我在登录外壳程序中设置了所有我的环境变量,但是在非登录外壳程序中却丢失了许多。

通过示例,我希望/usr/local/bin位于我的PATH中,但这仅在登录Shell中正确(如我在运行iTerm2时所看到的)。这是IntelliJ IDEA中终端会话的摘录:

amacleod@valjean ~> echo $PATH | grep -c /usr/local/bin
0
(1) amacleod@valjean ~> $SHELL --login
Welcome to fish, the friendly interactive shell
amacleod@valjean ~> echo $PATH | grep -c /usr/local/bin
1

一种可能的解决方法是将我期望的PATH和其他变量添加到非登录shell的shell配置中,但实际上,我宁愿始终处于登录shell中。

我希望IntelliJ IDEA在“终端”设置中具有一个用于发送--login的复选框。但是,可以覆盖 Shell路径设置以包括登录标志。 enter image description here

答案 7 :(得分:-1)

您似乎可以定义项目特定的环境变量:

  

在IntelliJ项目中,您可以在下面设置特定的环境变量   运行/调试配置 - >默认值 - >申请 - >环境   变量

自: http://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/#comment-617922540 enter image description here