使用 "java -jar"命令启动jar包时报不支持的jdk版本异常

时间:2020-11-28 15:10:56

在使用java -jar 命令启动一个jar包的时候,提示版本不支持:

 [root@hadoop01 eureka-server-master]# java -jar xuebusi-eureka-server-master.jar
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xuebusi/EurekaApplication :
Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:)
at java.net.URLClassLoader.access$(URLClassLoader.java:)
at java.net.URLClassLoader$.run(URLClassLoader.java:)
at java.net.URLClassLoader$.run(URLClassLoader.java:)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:)
at java.lang.ClassLoader.loadClass(ClassLoader.java:)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:)
at java.lang.ClassLoader.loadClass(ClassLoader.java:)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:)
[root@hadoop01 eureka-server-master]#

这是因为JDK版本过低的原因(我使用maven打jar包的时候jdk使用的是1.8版本,而我使用java -jar运行该jar包的时候服务器上安装的jdk是1.7版本):

类似错误均属于Java版本问题,即JDK版本过低,只要选择相对应的JDK版本编译即可。
,,,, 是Java编译器内部的版本号:
Unsupported major.minor version 52.0 对应于 JDK1.(JRE1.)
Unsupported major.minor version 51.0 对应于 JDK1.(JRE1.)
Unsupported major.minor version 50.0 对应于 JDK1.(JRE1.)
Unsupported major.minor version 49.0 对应于 JDK1.(JRE1.)
Unsupported major.minor version 48.0 对应于 JDK1.(JRE1.)

解决版本:统一JDK版本,打jar包时的jdk版本要和运行jdk时所使用的jdk版本保持一致。

修改maven的pom.xml文件中的jdk版本为1.7,然后重新打jar包。

使用 "java -jar"命令启动jar包时报不支持的jdk版本异常

再次使用"java -jar"命令启动jar包,就不再有版本问题了。

如果本文对您有所帮助,请扫描下方微信二维码打赏,您的鼓励是我前进最大的鼓励!

使用 "java -jar"命令启动jar包时报不支持的jdk版本异常