1、本人因为要在设置好全局jdk为1.7的linux服务器上启动一个用springboot2.0(要求jdk1.8及以上)的jar包项目,出现了下面的异常:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher : Unsupported major.minor version 52.0
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
有下面两种解决方式:
方式一:动态jdk启动项目
前提:在环境中有带需要的jdk版本,比如我环境中有如下两个版本的jdk
其中1.7位全局配置好的jdk
在linux下执行下面的命令行就OK了
其中/usr/local/jdk1.8.0_144/bin/为需要运行用的jdk的位置,/opt/java/jar/ceshi.jar为需要运行的jar包。
方式二:设置局部变量
前提:在环境中有带需要的jdk版本,比如我环境中有如下两个版本的jdk
其中1.7位全局配置好的jdk。
创建一个新用户,参考:https://blog.csdn.net/li_101357/article/details/69367457
给普通用户设置局部的jdk,参考:https://blog.csdn.net/u013189824/article/details/80653861
设置完局部变量之后,用该用户去运行项目就OK了。
文章来源: https://blog.csdn.net/hzhahsz/article/details/90266322