IDEA报错信息 Error:java:无效的源发行版:12 解决方法

最近打开了一个好久以前的EE项目,运行的时候报错html

Information:java: Errors occurred while compiling module 'xxx'java

Information:javac 1.8.0_201 was used to compile java sourceside

Information:Module "xxx" was fully rebuilt due to project configuration/dependencies changesui

Information:2020/2/13 18:32 - Build completed with 1 error and 0 warnings in 3 s 688 msspa

大概意思就是说.net

因项目配置/依赖项更改而彻底重建,出了问题

解决方法以下code

1. ctrl+alt+shift+s 打开project structure

2.修改project language level 等级为8

便可解决

 

 

 

以后查了下project language level是干啥的orm

https://www.cnblogs.com/signheart/p/4d2058ae687f9a29680c070de85f7fbe.htmlhtm

language level 介绍

其余 IDE 没有看到相似 language level 的设置,因此这个功能应该算是 IntelliJ IDEA 特有的,但是 IntelliJ IDEA 官网也没有专门介绍 language level 的地方,也许 IntelliJ IDEA 认为这个知识点属于 JDK 范畴因此没加以介绍吧。因此这里主要我对此的一些理解。咱们应该知道 Java JDK 在每一个新版本都会有其新特性,而新版本通常也会向下兼容旧版本的特性,IntelliJ IDEA 是对这些 JDK 的新特性是这样介绍的:blog

  • JDK 6 的新特性:@Override in interfaces
  • JDK 7 的新特性:Diamonds,ARM,multi-catch etc.
  • JDK 8 的新特性:Lambdas,type annotation etc.
  • JDK 9 的新特性:Jigsaw project etc.
  • etc. == et cetera == and so on == 等等

  • 如上第一张图标注 1,使用的是 JDK 7,显示的 SDK default 为 7 - Diamonds,ARM,multi-catch etc.
  • 如上第二张图标注 1,使用的是 JDK 8,显示的 SDK default 为 8 - Lambdas,type annotation etc.

当咱们使用 JDK 8 的时候,咱们只能向下兼容 JDK 8 及其如下的特性,因此只能选择 8 及其如下的 language level。因此当咱们项目使用的是 JDK 8,可是代码却没有使用 JDK 8 的新特性,最多使用了 JDK 7 的特性的时候咱们能够选择 7 - Diamonds,ARM,multi-catch etc.

对此咱们总结 language level:限定项目编译检查时最低要求的 JDK 特性。

如今假设咱们有一个项目代码使用的 JDK 8 新特性:lambda 语法,可是 JDK 选择的倒是 JDK 7,即便 language level 选择了 8 - Lambdas,type annotation etc.,也是没有多大意义的,同样会编译报错。

Module 下的 SDK 和 language level

对于大型项目,各个 Module 用到的 SDK 和 language level 颇有多是各不同的,IntelliJ IDEA 对此也进行了支持。

  • 如上图标注 1 所示,能够针对 Module 选择其余 SDK,默认选择的是 Project SDK

相关文章
相关标签/搜索