我最近将Java 7替换为Java 8。
IntelliJ中的所有常规应用程序都运行流畅。
除了tomcat应用程序以外的所有应用程序--它们从cmd命令行运行,而不是从IntelliJ运行。
由于JRE_HOME定义中存在错误,因此无法加载。
我已经在env变量和jdk设置中定义了JRE_HOME。
我已经执行了
echo %jre_home%
在IntelliJ终端和cmd中,接收到不同的值
(IntelliJ终端显示未更新的值。)。
终端中的变量在哪里声明?
如何更改它们?
我最近将Java 7替换为Java 8。
IntelliJ中的所有常规应用程序都运行流畅。
除了tomcat应用程序以外的所有应用程序--它们从cmd命令行运行,而不是从IntelliJ运行。
由于JRE_HOME定义中存在错误,因此无法加载。
我已经在env变量和jdk设置中定义了JRE_HOME。
我已经执行了
echo %jre_home%
在IntelliJ终端和cmd中,接收到不同的值
(IntelliJ终端显示未更新的值。)。
终端中的变量在哪里声明?
如何更改它们?
9条答案
按热度按时间ar5n3qh51#
我不知道旧的IntelliJ版本,但在2019.2.3中可以在项目设置中配置环境变量。请注意,您需要重新启动现有的终端或创建新的终端选项卡才能看到效果。
bqf10yzr2#
差不多5年后,我在Windows 10上遇到了同样的问题,不得不重新启动电脑来解决它。
编辑:最好的解决方案是不定义JRE_HOME环境变量。我不知道为什么IntelliJ会使用env变量。
svgewumm3#
如果您通过JetBrains工具箱启动IntelliJ,它将缓存
$PATH
变量,因此不会显示最近的更改。只需关闭并重新打开JetBrains工具箱。
mwngjboj4#
对我来说,这是因为IntelliJ IDEA没有将shell作为“登录”shell启动。我的所有环境变量都按照我在登录shell中所期望的那样设置,但在非登录shell中,它们中的许多变量都丢失了。
举例来说,我希望
/usr/local/bin
在我的PATH中,但这只在登录shell中才是真的(当我运行iTerm2时得到的结果)。一个可能的解决方法是将我期望的PATH和其他变量添加到非登录shell的shell配置中,但我真的宁愿总是在登录shell中。
我希望IntelliJ IDEA在终端设置中有一个发送
--login
的复选框。但是,可以覆盖 Shell path 设置以包括登录标志。pbossiut5#
使系统缓存失效应该可以解决这个问题。请参阅JetBrains: Invalidate Cache。
任何其他措施(如关闭项目和IDE)似乎仅在每个项目基础上工作,并且仅在一段时间后(当IDE检测该高速缓存本身无效时...)
编辑:
更正-不幸的是,在更正了所有终端中的环境 * 一段时间 * 之后,IntelliJ在我的任何项目中“* 恢复 ”到了旧的、不正确的环境。现在我希望在重新启动之后--正如akuman 8所发布的那样--这个问题得到解决。(如果没有,我将坚持使用我选择的在IDE之外*的命令行,在那里一切都工作正常...)
bvhaajcl6#
AFAIKT,linux上的intellij终端和运行一个独立的终端会话是一样的,它只是方便地位于IDE中。
在回答问题“如何更改[终端环境变量]?”
我正在使用virtualenvwrapper来管理我的终端在不同环境下的环境变量,比如开发、测试和生产环境,它在java开发中和在python开发中一样好用。
https://virtualenvwrapper.readthedocs.org
whitzsjs7#
1.关闭所有IntellJ窗口以及当前可能使用错误SDK的任何进程。
1.导航到安装JDK的文件夹(例如
C:\Program Files\Java
)。1.重命名错误的SDK(例如
jdk-11.0.5.OLD
)。如果它不这样做,您可能仍然有一个进程使用该SDK运行;返回到1。1.再次启动IntelliJ。
ecfdbz9o8#
对我来说,使系统缓存无效或重新启动IntelliJ并不会重新加载更新的环境变量。
重新启动计算机后,IntelliJ便能够获取更新的环境变量。
1cosmwyk9#
您似乎可以定义项目特定的环境变量:
在IntelliJ项目特定的环境变量中,您可以在运行/调试配置--〉默认值--〉应用程序--〉环境变量下进行设置
来源:http://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/#comment-617922540 x1c 0d1x