idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0

JavaFx项目编译提示:..类文件具有错误的版本55.0,应为52.0..

  • 项目场景:
  • 问题描述:
  • 原因分析:
  • 解决方案:

项目场景:

在使用idea学习javafx项目编写的过程中,依据网络教程按步骤操作发现报错

问题描述:

  • JDK版本:拥有jdk8和jkd15,编译时项目设置为jdk15
  • idea版本:2018.3.4
  • JavaFx版本:javafx-sdk-15.0.1

报错情况如下
在这里插入图片描述

原因分析:

java8(jdk1.8)到java10(jdk10)中内含有JavaFx 然而在java11(jdk11)以及以后的版本中剥离出来
需要开发者独立下载,另行导入

依据教程2,报错是因为使用了55.0版本的类文件,而运行环境使用的是52.0版本.
即下载的javafx是包含很多jar的文件,而其版本要求他运行的Jdk应该为55.0以及以上.
而我们的运行环境是52.0,低版本运行高版本的类,导致报错.
但我们的j环境配置的是jdk15,理论上说是非常高版本的文件了
在javaFx15的发行说明中看到
https://gitee.com/openjfx/jfx/blob/master/doc-files/release-notes-15.md
其要求最低版本为jkd11idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0_第1张图片
显然Jdk15满足这一要求,而令人迷惑的是,错误提示中显示我们的类版本为52.0

据此查询
根据https://www.cnblogs.com/xianyao/p/12588668.html可知
各个jkd对应的版本为
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

根据教程https://zhidao.baidu.com/question/536622034.html
查询java15的类版本号为59,然而
图中“应为52.0”一句
图上“应为52.0”一句,暗示编译使用的是jdk8
以及上方
Information:Java:Errors occurred while compiling module “JavaFxDemo"
Information:javac 8 was used to compile java sources
表示:由于某种原因编译时出错,并且编译器使用了Javac 8来编译源文件

两点表明:我们的JDK15并未用来编译程序
检查各项设置均为JDK15,并未找出原因
随后看到教程1 https://blog.csdn.net/yushangyong/article/details/111801766
才明白自己的idea有个地方不一样(如下)
idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0_第2张图片
图上选项,前端数字表示jdk版本,显然Jdk15不包含在内
加之,使用的Idea版本为2018.3.4,而包含JDK15在内的JAVA15发行在2020年 9月15号
所以并未加入对Jdk15的相应内容,所以编译时只能用Jdk8来编译,导致的出错

百度”idea支持java15的版本“,得到一条关键信息:
idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0_第3张图片
idea2020.2以后才支持java15,即支持jdk15


解决方案:

下载并安装idea2020.3
依据教程参考1:https://blog.csdn.net/yushangyong/article/details/111801766
注意,配置VM option时,Idea2020.3中应为
Run->Edit Configurations… Main->Modify options下勾选Add VM options
idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0_第4张图片
idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0_第5张图片
配置完成,编译运行,输出Hello World窗口,项目搭建成功!
idea JavaFx项目搭建报错 类文件具有错误的版本55.0,应为52.0_第6张图片

教训:jdk版本,开发工具版本、下载的jar包内的class版本一定要注意。一般情况下要保证jdk和开发工具版本较为先进,除非为了兼容性,最好不适用老旧的jdk.

  • 教程参考1:https://blog.csdn.net/yushangyong/article/details/111801766

  • 教程参考2: https://blog.csdn.net/clearloveq/article/details/107053944

  • 教程参考3:https://zhidao.baidu.com/question/536622034.html

  • 教程参考4:https://gitee.com/openjfx/jfx/blob/master/doc-files/release-notes-15.md

  • 教程参考5:https://www.cnblogs.com/xianyao/p/12588668.html

你可能感兴趣的:(java,javafx,intellij,idea)