You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17编译的JAR包无法在JRE 1.8_311环境运行如何解决

错误根因

你遇到的是典型的Java编译版本与运行版本不兼容问题:报错中的class版本61.0对应Java 17,52.0对应Java 8,高版本编译出的字节码无法在低版本JRE上运行。

解决方案

方案一:升级运行环境(优先推荐)

直接将运行环境替换为Java 17及以上版本的JRE/JDK即可,你之前用OpenJDK 17可正常启动就是这个逻辑。

  • 该方案无需修改任何项目代码与编译配置,改造成本最低,且Java 17是官方长期支持(LTS)版本,生产环境使用稳定性有保障。
  • 如果需要对外分发程序,可使用jlink、jpackage等工具将Java 17 JRE和你的JAR包打包成独立exe/dmg安装包,用户无需单独安装JRE即可运行,避免环境兼容问题。

方案二:降级项目编译版本为Java 8(仅当必须兼容JRE 8环境时选用)

该方案需要修改项目配置、依赖,同时适配代码语法,操作步骤如下:

1. 修改IntelliJ项目编译配置

  • 打开File > Project Structure > Project面板,将项目SDK改为Java 8,语言级别选择8 - Lambdas, type annotations etc.
  • 切换到Modules标签,确认所有子模块的语言级别同步设置为8
  • 打开Settings > Build, Execution, Deployment > Compiler > Java Compiler面板,将所有模块的目标字节码版本设置为1.8

2. 适配依赖与代码

  • JavaFX版本降级到8.x版本,和Java 8内置的JavaFX版本匹配,移除项目中引入的高版本JavaFX依赖
  • 排查并删除所有Java 8不支持的语法与API:包括var关键字、文本块、switch表达式、Java 11+新增的Stream/HttpClient等API

3. 验证

重新构建生成JAR包,再用JRE 1.8.0_311测试运行即可。

提示:如果项目已大量使用Java 17特性或高版本JavaFX专属功能,降级改造成本极高,不建议选用该方案。

内容的提问来源于stack exchange,提问作者Filippo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:36:03