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

JDK与JRE版本不兼容引发UnsupportedClassVersionError问题求助

解决 UnsupportedClassVersionError 编译运行版本不兼容问题

这个问题的核心很明确:你用JDK 12.0.1编译了hello.java,生成的class文件版本是56.0(对应JDK12),但运行时用的是JDK 1.8.0_211——它只能识别最高52.0版本的class文件,所以出现了版本不兼容的错误。

这里有几个可行的解决办法,你可以根据自己的需求选择:

方法一:用JDK12直接运行程序

既然你已经安装了JDK12,不用改环境变量,直接调用它的java命令就能运行:

D:\jdk-12.0.1\bin\java hello

方法二:用JDK8重新编译程序(适合需要在JDK8环境运行的场景)

如果你的代码不需要JDK12的专属特性,你可以切换到JDK8环境编译,或者在编译时指定目标版本为JDK8:

  1. 找到JDK8的javac路径(比如你的JDK8安装目录下的bin文件夹),用绝对路径编译:
    # 假设JDK8安装在C:\Program Files\Java\jdk1.8.0_211\bin
    "C:\Program Files\Java\jdk1.8.0_211\bin\javac" hello.java
    
  2. 或者如果当前终端的javac是JDK12的,编译时加上版本参数:
    javac -source 1.8 -target 1.8 hello.java
    
    注意:如果你的代码里用了JDK8不支持的语法或API,这个命令会报错,需要修改代码去掉这些特性。

方法三:统一环境变量,确保编译和运行用同一版本的JDK

如果想长期固定用某个版本的JDK,建议配置系统环境变量:

  • 若默认用JDK12:
    1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在系统变量中设置JAVA_HOME为D:\jdk-12.0.1
    3. 在PATH变量里,把%JAVA_HOME%\bin移到最前端
    4. 重启终端,输入java -version和javac -version确认版本都是12.0.1
  • 若默认用JDK8:
    同理,把JAVA_HOME设为JDK8的安装路径,将JDK8的bin目录放在PATH最前面即可。

内容的提问来源于stack exchange,提问作者Vasya Krenta vkrenta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:27:51