报错如下:
Class has been compiled by a more recent version of the Java Environment (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0.
StackOverflow的回答:
This is just a version mismatch. You have compiled your code using java version 9 and your current JRE is version 8. Try upgrading your JRE to 9.
这里是对应java编译器的版本
49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
59 = Java 15
60 = Java 16
61 = Java 17
62 = Java 18
63 = Java 19
大概问题就是,我使用java11编译了jar包,服务器上的是java8。解决办法两种
- 用Java8 编译
- 服务器用Java11 运行
我打算直接在服务器上安装jdk11
先看一下yum的库里面有没有jdk11文件
yum search java-11
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
==================================== N/S matched: java-11 =====================================
java-11-openjdk.i686 : OpenJDK Runtime Environment 11
java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
找到了,直接安装 yum install java-11-openjdk -y
安装成功后,由于我之前安装了jdk8,已经默认生效jdk8了。我们换一下版本
sudo alternatives --config java
共有 2 个提供“java”的程序。
选项 命令
-----------------------------------------------
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java)
2 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64/bin/java)
按 Enter 保留当前选项[+],或者键入选项编号:2
之后验证一下java运行的版本
[root@VM-24-2-centos ~]# java -version
openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.18.0.10-1.el7_9) (build 11.0.18+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.18.0.10-1.el7_9) (build 11.0.18+10-LTS, mixed mode, sharing)
成功。