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

1 [root@hadoop01 eureka-server-master]# java -jar xuebusi-eureka-server-master.jar 2 Exception in thread "main" java.lang.UnsupportedClassVersionError: com/xuebusi/EurekaApplication : 
Unsupported major.minor version 52.0
3 at java.lang.ClassLoader.defineClass1(Native Method)
4 at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
5 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
6 at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
7 at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
8 at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
9 at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
10 at java.security.AccessController.doPrivileged(Native Method)
11 at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
12 at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
13 at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)
14 at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
15 at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
16 at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
17 at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
18 at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
19

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

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

 

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

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

使用_jar包

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