IntelliJ IDEA 终端 java 版本问题

IntelliJ IDEA terminal java version issue

我在 IntelliJ IDEA 编译器设置中遇到了一些问题。 我安装了 JDK 8 并且 idea 中的项目之一仅适用于 JDK 6.

我已经在preferences -> Java Compiler page中更改了idea中的编译器版本并重新启动了idea。

我面临的问题是,idea Terminal 上的版本没有得到更新。除了在 idea 中的 .profile 中设置 JAVA_HOME 之外,还有其他方法可以解决这个问题吗?

简而言之:您在看两个不同的东西。

IntelliJ中的终端其实就是一个操作系统终端;它将在您的 "path" 中查找 java 可执行文件(在 Windows 上用 %PATH% 表示,在 *nix 上用 $PATH 表示)。

另一方面,屏幕截图中显示的设置描述了应该为您的项目生成什么样的编译字节码。 Java 编译器可以为早期版本的 Java VM 生成字节码。在这种情况下,您要求 IntelliJ 使用的 Java 编译器生成可以在 Java 6 VM 上 运行 的代码,而不管 Java 是哪个版本习惯于 运行 IntelliJ 本身。

您IDE中的编译器版本与您终端使用的编译器版本无关。

我建议在您的 .bashrc 中创建一个函数,以允许通过导出相关路径在 jdk6 和 jdk8 之间切换。

然后在需要时您可以简单地从终端调用该函数(在 IDE 内或不在终端内)并切换到相应的 jdk.

我会说它按预期工作。您只更改了 IntelliJ IDEA 的编译器版本,因此它会影响 IntelliJ IDEA 中的编译过程。此设置不会(也不应该)影响您的终端会话环境。您可以在 File -> Settings -> Tools -> Terminal -> Shell path 中更改 shell 启动参数。由于此设置可以按项目设置(但据我所知不是按模块设置),因此您可以在那里指定特定于项目的设置。我不确定是否可以在那里传递一些特定于项目的变量,您可能必须对参数进行硬编码,但在简单的情况下,它可以更改为 cmd.exe /k echo WELCOME(在我的 Windows 机器)或类似的东西 bash.

是的,您可以在“首选项”>“工具”>“终端”>“环境变量”中进行设置。

此设置适用于当前项目。所以你可以为每个项目设置不同的值。

需要注意的是,每当您修改项目的 JDK(尤其是主要版本升级)时,您都必须记住更新此项。

设置将在您下次打开新终端(或重新启动 IDE)时生效。