Java 类转换异常 - Spring 引导

新手上路,请多包涵
Exception in thread "main" java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader

 at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getUrls(DefaultRestartInitializer.java:93)
 at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(DefaultRestartInitializer.java:56)
 at org.springframework.boot.devtools.restart.Restarter.<init(Restarter.java:138)
 at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:537)
 at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartedEvent(RestartApplicationListener.java:68)
 at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:45)
 at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)
 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)
 at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121)
 at org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:63)
 at org.springframework.boot.SpringApplicationRunListeners.started(SpringApplicationRunListeners.java:48)
 at org.springframework.boot.SpringApplication.run(SpringApplication.java:304)
 at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
 at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
 at com.rme.hub.RmeApplication.main(RmeApplication.java:24)

原文由 shaan bhattacharya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 336
1 个回答

从堆栈跟踪中是否存在 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 Boot 2。在撰写本文时,最新版本是 2.0.5,它支持 Java 8、9 和 10。Spring Boot 2.1,它将今年晚些时候发布,将增加对 Java 11 的支持。

原文由 Andy Wilkinson 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题