运行Java主程序时遭遇JNI错误与UnsupportedClassVersionError问题求助
解决Java UnsupportedClassVersionError问题
这个错误的根源很明确:你的代码是用Java 11(类文件版本55.0)编译的,但当前运行代码的JRE是Java 8(仅支持最高类文件版本52.0),版本不兼容导致了这个问题。单独运行子项目没问题,大概率是子项目的编译和运行环境是统一的,但主项目的编译配置和运行环境出现了不一致。
下面是具体的解决步骤:
- 统一Java运行环境:要么把你的JRE升级到Java 11或更高版本,要么如果项目允许的话,把编译环境降级到Java 8,确保编译和运行用同一个版本的Java。
- 检查IDE的配置一致性:如果你用IDE(比如IntelliJ IDEA、Eclipse)开发,要确认这几个地方的版本一致:
- 项目的SDK版本
- 各个模块的SDK版本
- 运行main函数的配置中选择的JRE版本
- 调整构建工具的编译参数:如果用Maven或Gradle构建项目,要明确指定源码和目标字节码的版本:
比如Maven在pom.xml中添加:
Gradle则在<properties> <maven.compiler.source>1.8</maven.compiler.source> <!-- 或者11,根据你的选择 --> <maven.compiler.target>1.8</maven.compiler.target> </properties>build.gradle中设置:java { sourceCompatibility = JavaVersion.VERSION_1_8 // 或者VERSION_11 targetCompatibility = JavaVersion.VERSION_1_8 } - 验证子项目的编译版本:虽然单独运行子项目没问题,但要确认子项目的编译版本和主项目的运行版本兼容,避免主项目依赖了高版本编译的子项目类文件。
补充一下Java版本和类文件版本的对应关系,方便你参考:
- Java 8 → 52.0
- Java 11 → 55.0
内容的提问来源于stack exchange,提问作者Marwa
相关产品推荐
相关产品推荐

