Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ-为什么终端具有不同的环境变量值_Java_Intellij Idea_Environment Variables_Java 8 - Fatal编程技术网

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

Java IntelliJ-为什么终端具有不同的环境变量值,java,intellij-idea,environment-variables,java-8,Java,Intellij Idea,Environment Variables,Java 8,我最近将Java 7替换为Java 8。 IntelliJ中的所有常规应用程序都能顺利运行。 除了tomcat应用程序之外,其他所有应用程序都可以从cmd命令行运行,但不能从IntelliJ运行 由于JRE_主页定义中的错误,无法加载该文件。 我已经在env变量和jdk设置中定义了JRE_HOME。 我已经执行了 echo %jre_home% IntelliJ终端和cmd中都接收到不同的值 (IntelliJ终端显示未更新的值。)。 终端中的变量在哪里声明? 如何更改它们?您似乎可以定义特定

我最近将Java 7替换为Java 8。
IntelliJ中的所有常规应用程序都能顺利运行。
除了tomcat应用程序之外,其他所有应用程序都可以从cmd命令行运行,但不能从IntelliJ运行

由于JRE_主页定义中的错误,无法加载该文件。
我已经在env变量和jdk设置中定义了JRE_HOME。
我已经执行了

echo %jre_home%
IntelliJ终端和cmd中都接收到不同的值
(IntelliJ终端显示未更新的值。)。
终端中的变量在哪里声明?

如何更改它们?

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

在IntelliJ项目特定的环境变量中,可以在 运行/调试配置-->默认值-->应用程序-->环境 变数

发件人:

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

在回答问题“如何更改[终端环境变量]?”

我正在使用VirtualNVRapper为不同的环境(如开发、测试和生产)管理终端的环境变量。它在java开发中的作用与在python开发中的作用一样好


差不多5年后,我在Windows 10上遇到了同样的问题,必须重新启动计算机才能解决

编辑:
最好的解决方案是不定义JRE_HOME环境变量。我不知道为什么,但IntelliJ Stuck使用了那个env变量

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


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

只需关闭并重新打开JetBrains工具箱即可

  • 关闭所有IntellJ窗口以及当前可能使用错误SDK的任何进程
  • 导航到安装JDK的文件夹(例如
    C:\ProgramFiles\Java
  • 将错误的SDK重命名为其他名称(例如
    jdk-11.0.5.OLD
    )。如果它不这样做,您可能仍然有一个使用该SDK运行的进程;回到1
  • 再次启动IntelliJ

  • 对我来说,这是因为IntelliJ IDEA没有以“登录”shell的形式启动shell。我的所有环境变量都是在登录shell中设置的,但在非登录shell中,许多环境变量都丢失了

    举例来说,我希望
    /usr/local/bin
    在我的路径中,但这仅在登录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
    
    一种可能的解决方法是将预期路径和其他变量添加到非登录shell的shell配置中,但我更愿意始终在登录shell中

    我希望IntelliJ IDEA在终端设置中有一个发送
    --login
    的复选框。但是,可以覆盖Shell路径设置以包含登录标志。

    使系统缓存无效应该可以做到这一点。请参阅。

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


    编辑:

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

    谢谢。但是旧JRE_Home从哪里取来?我想删除它的引用。据我所知,IJ使用操作系统的默认shell(对于windows cmd.exe,您可以指定要使用的可执行文件。因此,环境变量应与执行cmd.exe(或其他平台上适用的可执行文件)时相同)你自己谢谢。当然不是我的环境。顺便说一句,它在tomcat调试配置中。不是应用程序。它只是为了说明控件的位置。当然,你必须选择自己的运行/调试配置。你说的“删除它的引用”是什么意思?@mish你弄混了。这些变量用于快速启动应用程序/运行任务等的特定配置。它们不反映终端中显示的内容。对我来说也是。我可以确认,在Windows 10上,我必须重新启动计算机。重新启动IntelliJ IDEA没有任何效果…当安装java/jre时通过oracle安装程序等,它正在将JRE_HOME/JRE设置到路径中。谢谢,您为我节省了一些时间。