Java:错误:不支持版本17。

61

我最近升级到了Intellij 2021.1,但每当我尝试运行我的程序时,会出现以下错误信息:

java: error: release version 17 not supported

我已经搜索了其他答案,但没有找到解决方案。如果有帮助的话,我的SDK版本是16。


错误信息应该更清晰明了一些。可以说“Maven Runner 不支持发布版本 17”,或者“模块语言级别不支持”,或者“与 Maven 属性 'maven.compiler.target' 冲突”之类的。我非常讨厌不完整的错误信息。 - MiguelMunoz
21个回答

43

还有一个值得检查的地方 -> Java编译器设置。

IntelliJ IDEA设置


这解决了我的问题(因为IntelliJ自动而莫名其妙地创建了每个模块的字节码版本设置)。IntelliJ让简单的事情变得非常非常非常令人沮丧。 - undefined

30
我遇到了同样的问题。在我的情况下,以下方法有所帮助。在 IntelliJ IDEA 中,我打开了“文件 -> 项目结构”,然后点击“模块”,将“语言级别”更改为17。然后我就能够毫无问题地运行我的代码了。
请查看下面的链接以查看项目结构窗口:Project structure window

和我一样,选择了“JDK 默认”。 - Coder Dev
1
对我有用。+1 票。但这太可怕了。重新构建应该实际上重建所有内容。非常感谢分享。 - Ajay Kumar
这个答案也是以下错误的解决方案:java: error: release version 20 not supported too. 我将语言级别设置为17。 Intellij 安装的Jdk版本是18。 - Davoud Badamchi

15
  1. 请确保在文件->项目结构->平台设置->"SDKS"中有JDK 17可用。
    文件->项目结构->平台设置->"SDKS"

  2. 在文件->项目结构->项目设置->"项目"中选择17 JDK。

    文件->项目结构->项目设置->"项目"
  3. 文件->无效缓存...->(保留默认值)->"无效并重启"

  4. 进行"构建" -> "重新构建项目"


1
对我来说,第二步缺失了,谢谢! - undefined

12

我在升级到Java 17时遇到了这个问题,我通过在项目结构中配置新的SDK并使缓存无效来解决它:文件 --> 使缓存无效 --> 默认选择并重新启动。


2
除了确保所有内容都指向您想要使用的JDK版本(在Intellij中到处都是),这个答案就是秘密酱料。 - Mike Cheel

9

当我尝试使用版本16时,我遇到了相同的错误。这是因为您尝试使用的新版本不稳定。

  1. 您必须卸载版本17,进入:文件 -> 项目结构 -> SDKs。通过右键单击 sdk 17 然后删除来删除它。 右键单击已突出显示的版本(在您的情况下为17)

  2. 现在您需要更改项目 sdk,进入:文件 -> 项目结构 -> 项目。选择先前适用于您的工作版本,在我的情况下是15 java version "15.0.2"。将项目语言级别设置为默认值 (SDK 默认值 (15-文本块))

    更改项目 sdk 和项目语言级别

  3. 最后一步是更改项目配置 sdk,进入您调试项目的导航栏,然后选择编辑配置。为您的项目选择 sdk 16 (在我的情况下是15)。 更改项目配置 sdk


8
  1. 文件 => 设置 => 构建、执行、部署 => Java编译器
  2. 将目标字节码版本更改为项目当前的版本。进入图片描述

5

对我来说,除了更新项目的语言级别和SDK之外,我还需要更改JAVA_HOME和Path系统环境变量以指向Java 17(我使用的是Amazon Corretto)。我的模块使用了从项目本身继承的inheritedJdk。Java编译器版本也是17。


1
当我的JAVA_HOME指向版本11时,我遇到了同样的问题。尽管我在Intellij中更改了设置,但它仍然在幕后为maven项目使用此版本。花了一段时间才弄清楚这个问题;-) - dotnet-provoke
1
“echo $JAVA_HOME” 告诉我是这样的。我忘记了我正在使用 jenv。所以只需执行 “jenv local 17” 即可。现在没问题了。 - Andrew Cheong

4
请查看这个答案以获取相关的屏幕截图。确保在所有对话框中正确配置了所有源/目标级别。可能会出现某处打错字,使用17代替1.7(Java 7)。
检查项目目录中的.idea/misc.xml文件,确保其指定了正确的版本。还需要查看*.iml模块文件和.idea/compiler.xml文件中指定的语言级别。

3

需要执行两个操作:

  1. 进入 文件 -> 项目结构 -> 模块,将语言级别更改为17。
  2. 进入 IntelliJ IDEA -> 设置 -> 构建、执行、部署 -> 编译器 -> Java编译器。将您的模块的目标字节码版本更改为17。

2
在我的情况下,更新.idea/misc.xml没有起到作用。我是从Intellij 2020.2升级到Intellij 2020.4再升级到Intellij 2020.1.1的。最终采取了重置的方法:文件 -> 管理IDE设置 -> 恢复默认设置...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接