idea 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的发行说明中看到 其要求最低版本为jkd11 显然Jdk15满足这一要求,而令人迷惑的是,错误提示中显示我们的类版本为52.0

据此查询 根据可知 各个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

根据教程 查询java15的类版本号为59,然而 图上“应为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 才明白自己的idea有个地方不一样(如下) 图上选项,前端数字表示jdk版本,显然Jdk15不包含在内 加之,使用的Idea版本为2018.3.4,而包含JDK15在内的JAVA15发行在2020年 9月15号 所以并未加入对Jdk15的相应内容,所以编译时只能用Jdk8来编译,导致的出错

百度”idea支持java15的版本“,得到一条关键信息: idea2020.2以后才支持java15,即支持jdk15


解决方案:

下载并安装idea2020.3 依据教程参考1: 注意,配置VM option时,Idea2020.3中应为 Run->Edit Configurations… Main->Modify options下勾选Add VM options 配置完成,编译运行,输出Hello World窗口,项目搭建成功!

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

    教程参考1: 教程参考2: 教程参考3: 教程参考4: 教程参考5:
经验分享 程序员 微信小程序 职场和发展