java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本

简介: 如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。

当时我的报错:

执行预编译任务… 正在运行 'before' 任务 正在检查源 正在复制资源… [springcache-demo] 正在解析 java… [springcache-demo] java: 警告: 源发行版 11 需要目标发行版 11 正在检查依赖项… [springcache-demo] 依赖分析发现 0 个受影响的文件 编译模块 'springcache-demo' 时发生错误 javac 17 用于编译 java 源 已完成,正在保存缓存… 编译失败: 错误: 1;警告: 0 执行后编译任务… 编译失败: 错误: 1;警告: 0 正在同步输出目录… 2023/10/9 15:48 - 编译完成1秒494毫秒中 1 个错误 和 0 个警告

此处我将以修改为jdk8作为例子,修改为其他版本方法类似

注:若该项目不是maven项目,则不需要理会下面操作中关于maven和依赖的相关操作,其余操作完全一致,仍可以修改正确

1、检查并修改 pom.xml 里maven依赖项的jdk版本

这里改为你的jdk版本,若是jdk8,则中间数字改为8或1.8

若是其他版本的jdk,直接改为相应版本号即可,比如11,17

2、检查并修改项目结构(jdk版本、maven版本及文件等)

此处我设置了中文包,但操作方法完全一样

我的jdk版本是8,所以选择了8

若你的jdk版本是其他版本,选择对应版本号即可

3、只有新手或者忘记才会出现的错,打开设置,修改maven版本和文件地址以及jdk版本

选择经常使用的maven及jdk版本

4、清理缓存!!!重新编译!!! 清理缓存尤其重要!!!

5、运行Spring或普通项目

注意:最好点击启动类处的启动,不要点击最上面的启动,防止启动的还是缓存

不是maven项目的话直接点击main方法即可

6、若还不行,重启IDEA即可

一般来说,按照上面的步骤改完后即可解决百分之九十五的问题

若还不行,只能说明还是缓存在作怪,重启IDEA百分之九十九可以解决,若一次不行,就两次,两次后还不行 ,则重启电脑清理缓存,百分之99.9的概率就解决问题了

若还不行,说明你的错误不止这一个或者有其他相关的依赖依靠的其他jdk版本,再搜其他教程或检查pom.xml

目录
相关文章
|
7天前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
4天前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
40 17
|
26天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
118 26
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
61 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
2月前
|
Java
Java项目中高精度数值计算:为何BigDecimal优于Double
在Java项目开发中,涉及金额计算、面积计算等高精度数值操作时,应选择 `BigDecimal` 而非 `Double`。`BigDecimal` 提供任意精度的小数运算、多种舍入模式和良好的可读性,确保计算结果的准确性和可靠性。例如,在金额计算中,`BigDecimal` 可以精确到小数点后两位,而 `Double` 可能因精度问题导致结果不准确。
|
2月前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
93 1
|
2月前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
51 4
|
2月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
85 1
|
10天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
12天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。