有没有办法在 IntelliJ 中同时处理具有不同版本 Java 的多个项目?

Is there a way to simultaneously work on multiple projects with different versions of Java in IntelliJ?

有没有办法在 IntelliJ (v2022.x+) 中顺利 运行 并行项目,每个项目使用不同的 Java 版本?

例如,我正在使用 IntelliJ 处理两个项目。一个项目在 Java 11 中,另一个在 Java 17 中 - 每个项目都有自己的 IDE 实例。每个项目都配置为在 IntelliJ 设置(Gradle 和项目 SDK)中使用正确的 JDK。我还使用 skdman 将控制台切换到 Java 的正确版本,具体取决于我正在处理的项目。

但是,在项目之间切换会导致新项目无法正确加载 - 这可以通过使缓存无效并重新启动 + 重建来解决。

有没有办法避免使 caches/restarting/rebuilding 无效?

您可以为您在设置中打开的每个项目指定SDK

Project Settings -> Project -> Project SDK

我还注意到一些问题已通过失效和重启解决,但只有在您第一次打开项目且未正确设置 SDK 时才会出现。设置并重新启动后,它应该记住用于该项目的正确 SDK 并正常加载。

尝试找出有问题的场景,如果确定有问题,请考虑开工单:https://youtrack.jetbrains.com/issues/IDEA

从命令行使用工具 运行 时出现问题,例如,如果您在 IntelliJ 中打开终端,它会在启动时初始化一些东西,就好像您在 linux - 即使您更改了环境变量,shell 仍然具有与打开时相同的状态 - IntelliJ 中的终端也是如此。

这意味着即使您将 JAVA_HOME 更改为 Maven 使用不同的 Java,它仍将使用启动时设置的那个。