IntelliJ中java.lang.UnsupportedClassVersionError报错求助
IntelliJ中java.lang.UnsupportedClassVersionError报错求助
兄弟,这个报错我太熟了!别慌,先给你理清楚问题根源:你用高版本的Java(类文件版本63.0对应Java 19)编译了代码,但运行的时候却用了低版本的Java(52.0对应Java 8),版本不兼容就会报这个错。
你照着我给的步骤一步步核对你的设置,应该就能搞定:
先检查项目整体的SDK和语言级别
打开顶部菜单栏的File → Project Structure(或者直接按快捷键Ctrl+Alt+Shift+S),切换到Project选项卡:- 确保「Project SDK」选的是你要统一使用的Java版本(比如你要跑Java 8就选Java 8,要跑Java 19就选已安装的Java 19)
- 「Project language level」要和Project SDK的版本对应上,比如Java 8就选「8 - Lambdas, type annotations etc.」,Java 19就选对应级别
再检查模块的语言级别
还是在Project Structure里,切换到Modules选项卡,选中你的项目模块,点Sources标签:- 这里的「Language level」必须和刚才Project里的保持一致,不能一个高一个低
核对Java编译器的字节码版本
打开File → Settings(快捷键Ctrl+Alt+S),找到Build, Execution, Deployment → Compiler → Java Compiler:- 「Project bytecode version」要和你的SDK版本匹配
- 下面模块列表里的「Target bytecode version」也得统一改成和SDK一致的版本,别留着默认或者乱选别的
最后检查运行配置的JRE
点击顶部的运行配置下拉框,选「Edit Configurations...」,找到你当前用的运行配置:- 在Configuration标签页里,「JRE」选项一定要选和你编译版本相同的Java,不能选成低版本的
另外你贴的那几张设置截图,应该就是对应这些界面的,你可以对着步骤逐一比对,看看哪一步的版本没统一。比如很可能是你编译用了Java 19,但运行配置里选了Java 8,或者项目语言级别和模块的没对齐。
要是还搞不定,你可以把截图里的具体设置内容(比如选了哪个Java版本)再补充一下,我再帮你排查!
备注:内容来源于stack exchange,提问作者Debora Carnevali
相关产品推荐
相关产品推荐

