如何解决Spring Boot JAR包部署VPS时出现的Unsupported major.minor version 52.0异常
修复方案
错误原因说明
- 报错
Unsupported major.minor version 52.0:版本号52.0是Java 8编译的类文件标识,你的JAR包用Java 8编译,VPS默认调用Java 7运行才会触发版本不兼容错误。 - 删除Java 7后报错
java: command not found:系统环境变量里的Java路径原本指向Java 7的安装位置,删除后没有更新为Java 8的路径,导致系统找不到可执行的java命令。
具体操作步骤
- 保留VPS上的Java 7,避免影响其他依赖Java 7运行的服务,直接修改系统默认Java版本即可:
执行如下命令查看已注册的Java版本列表:
命令执行后会输出所有可选的Java版本,输入Java 8对应的序号后回车,即可将系统默认Java版本切换为Java 8。alternatives --config java - 验证版本切换是否生效:
执行java -version,确认返回的版本号为1.8.0_92-b14即可。 - 若执行上述命令时列表中没有Java 8选项,需要手动将Java 8注册到系统可选命令中:
先找到Java 8的实际安装路径(通常默认路径为/usr/lib/jvm/jre-1.8.0-openjdk/bin/java,若自定义安装请替换为实际路径),执行如下命令注册:
注册完成后重新执行alternatives --install /usr/bin/java java /usr/lib/jvm/jre-1.8.0-openjdk/bin/java 2alternatives --config java选择Java 8即可。 - (可选)为了保证本地打包的JAR包完全兼容Java 8,除了设置
java.version为8之外,建议在POM文件中显式指定编译插件的目标版本:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> - 修改配置后重新打包JAR包上传到VPS,执行如下命令即可正常启动服务:
java -jar SpringBootProject-0.0.1-SNAPSHOT.jar
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

