线程“ main”中的异常java.lang.ClassCastException: java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader不能为 转换为java.base / java.net.URLClassLoader org.springframework.boot.devtools.restart.DefaultRestartInitializer.getUrls(DefaultRestartInitializer.java:93) 在 org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(DefaultRestartInitializer.java:56) 在 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.onApplicationEvent(RestartApplicationListener.java:45) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) 在 org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:63) 在 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)
答案 0 :(得分:7)
从堆栈跟踪中java.base/jdk.internal.loader.ClassLoaders
的存在来看,您正在使用Java 9或更高版本。 Spring Boot的DefaultRestartInitializer
试图将应用程序类加载器转换为URLClassLoader
。这在Java 8及更低版本中有效,但在Java 9或更高版本中无效。 Spring Boot在updated中已采用2.0版本,以应对Java 9中的这一更改。
如果您想将Spring Boot与Java 9或更高版本一起使用,则应升级到Spring Boot2。撰写本文时,最新版本是2.0.5,它支持Java 8、9和10。Spring Boot 2.1将于今年晚些时候发布,它将增加对Java 11的支持。
答案 1 :(得分:0)
解决方案:在您的 IDE 中更改 JDK 版本 8
我在 IntelliJ idea 和 sts 的 spring boot 应用程序中遇到了同样的问题,但我在该问题中找到了一个解决方案:
如果您在项目中使用 AD 集成并且它属于 Microsoft,那么您需要使用 java 8 版本的 JDK,因为当前 Microsoft AD 插件不支持 java 9 或更高版本,它将仅支持 java 8 或更低版本版本
答案 2 :(得分:0)
我在 Eclipse 上遇到了这个问题,并通过执行以下步骤解决了:
仅此而已! 希望对你有用。