Java类强制转换异常-Spring Boot

sha*_*rya 2 spring-boot

线程“主”中的异常java.lang.ClassCastException:无法将org.springframework.boot.devtools.restart.DefaultRestartInitializer上的java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader强制转换为java.base / java.net.URLClassLoader org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(DefaultRestartInitializer.java:56)上的.getUrls(DefaultRestartInitializer.java:93)org.springframework.boot.devtools.restart.Restarter。(Restarter.java:138)在org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:537)在org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartedEvent(RestartApplicationListener.java:68)在org.springframework.boot.devtools .restart.RestartApplicationListener。org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)上的org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)上的onApplicationEvent(RestartApplicationListener.java:45) org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:63)上的.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121)在org.springframework.boot.SpringApplicationRunListeners.started(SpringApplicationRunListeners.java :48)在org.springframework.boot.SpringApplication.run(SpringApplication.java:304)在org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)位于com.rme.hub.RmeApplication.main(RmeApplication.java:24)

And*_*son 16

java.base/jdk.internal.loader.ClassLoaders堆栈跟踪中是否存在来判断,您正在使用Java 9或更高版本。Spring Boot DefaultRestartInitializer尝试将应用程序类加载器转换为URLClassLoader。这在Java 8及更低版本中有效,但在Java 9或更高版本中无效。Spring Boot已在2.0中进行了更新,以应对Java 9中的这一更改。

如果要在Java 9或更高版本上使用Spring Boot,则应升级到Spring Boot2。撰写本文时,最新版本是2.0.5,支持Java 8、9和10。Spring Boot 2.1将于今年晚些时候发布,将增加对Java 11的支持。