【发布时间】:2023-02-01 17:01:47
【问题描述】:
我已经下载了 Spring Tool Suite 4 IDE,Java 17 Came Along with that IDE。但我想在 Java8 上工作。
我在我的系统中只安装了 java8 并开始打印“Hello Spring Boot”。
当我运行示例项目时,代码正在用 java17 编译并尝试用 java8 运行(我在执行环境和构建路径中给出了它)
我收到如下错误。
线程“main”中的异常 java.lang.UnsupportedClassVersionError:org/springframework/boot/SpringApplication 已由较新版本的 Java 运行时(类文件版本 61.0)编译,此版本的 Java 运行时仅识别类文件版本至 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at com.aditya.springboot.HelloSpringBootProjectApplication.main(HelloSpringBootProjectApplication.java:10)
我在 windows-\>preferences-\>Compiler-\>JDK Compliance.. 中将编译器合规性从 17 更改为 1.8,
我将已安装的 JRE 指向从 jre 17(默认)到 jdk 1.8 和
我也在 project-\>properties-\>java 编译器中将编译器合规性从 17 更改为 1.8。
我尝试卸载 STS4 并重新安装它,但我仍然遇到同样的错误。
当我使用 Maven 项目时,我也尝试将 pom.xml 文件中的 \<java.version\> 从 17 更改为 1.8。
任何人都可以帮助我从 STS 使用 java17 来编译我的代码,我还没有在我的系统中安装 java17。我已将环境变量(用户级变量但不是系统级变量)中的 JAVA_HOME 指向仅 java8。
【问题讨论】:
-
检查你的 pom.xml 配置
-
Spring Boot 3.0 will require Java 17 -
@life888888 maven 中的 java 版本会覆盖 JAVA_HOME 中的所有版本,spring 工具套件/eclipse 中的编译器版本吗?如果 maven 覆盖了所有这些,那么需要配置所有这些吗?
标签: java spring-boot spring-tool-suite sts spring-tools-4