CentOS8 java -jar报错

问题遇到的现象和发生背景

在centos8系统上启动.bat文件失败报错,.bat文件内容就是java -jar 文件名.jar

问题相关代码,请勿粘贴截图

java -jar fabric-server-launch.jar

运行结果及报错内容

[ERROR] [FabricLoader/]: Uncaught exception in thread "main"
java.lang.RuntimeException: An exception occurred when launching the server!
at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:68)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:66)
Caused by: java.lang.RuntimeException: Error invoking MC server bundler: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.processBundlerJar(MinecraftGameProvider.java:321)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.locateGame(MinecraftGameProvider.java:206)
at net.fabricmc.loader.impl.launch.knot.Knot.createGameProvider(Knot.java:172)
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:125)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:71)
at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23)
5 more
Caused by: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:878)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider$1.loadClass(MinecraftGameProvider.java:277)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.processBundlerJar(MinecraftGameProvider.java:297)
10 more

我的解答思路和尝试过的方法

一开始认为是Java版本问题,尝试改变Java版本,没用

我想要达到的结果

正常使用

UnsupportedClassVersionError
JDK版本版本太高了,换JDK1.8再试试。

这不是很明显已经告诉你了吗?就是版本问题呀,你的项目编译的jdk和运行的jdk版本不一致呀,你要保证版本一致才可以,比如说你的项目版本是1.8,那么centos8上面安装的jdk也必须是1.8,打包jar之前一定要检查项目的jdk,另外运行时最好检查一下运行的jdk版本是否一致

img