java.lang.ClassCastException:类。。。位于加载器的未命名模块中';应用程序&x27;-spring引导开发工具

java.lang.ClassCastException:类。。。位于加载器的未命名模块中';应用程序&x27;-spring引导开发工具,java,spring-boot,intellij-idea,spring-boot-devtools,Java,Spring Boot,Intellij Idea,Spring Boot Devtools,我们有一个更大的Spring启动应用程序,它会导致以下异常: java.lang.ClassCastException: class jpa.XVersion cannot be cast to class jpa.XVersion (jpa.XVersion is in unnamed module of loader 'app'; jpa.XVersion is in unnamed module of loader org.springframework.boot.devtools

我们有一个更大的Spring启动应用程序,它会导致以下异常:

    java.lang.ClassCastException: class jpa.XVersion cannot be cast to class jpa.XVersion (jpa.XVersion is in unnamed module of loader 'app'; jpa.XVersion is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @671ef14f)
    at y.package.abc(XService.java:70)
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:75)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
从IDEA IntelliJ与JPA类的关系开始

从普通命令行启动时,应用程序运行良好

在我们移除依赖项之后

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional>
</dependency>

org.springframework.boot
弹簧靴开发工具
真的
IDE内部的执行工作正常,没有任何问题

我们正在使用:

  • Idea IntelliJ 2020.1.2
  • Spring Boot版本2.3.1
  • JDK 11.0.7(采用开放式JDK)
  • ApacheMaven 3.6.3
是否有人已经注意到了这种问题?
是否存在一个不同的解决方案,然后删除依赖项?

我删除了下面的依赖项,它成功了

org.springframework.boot 弹簧靴开发工具 运行时
true禁用spring开发工具重启

您可以使用设置为
false
spring.devtools.restart.enabled
属性禁用重启功能。在大多数情况下,您可以在application.properties中进行设置(这仍然会初始化重启类加载器,但不会监视文件更改)

例如,如果您需要完全禁用重启支持,因为它不适用于特定的库,那么您需要在调用
SpringApplication.run(…​)

例如:

 public static void main(final String[] args) {
    System.setProperty("spring.devtools.restart.enabled", "false");
    SpringApplication.run(Application.class, args);
}

参考

我遇到了同样的问题,在重新启动IDE并清理maven之后,它在IntelliJ idea中被自动修复。请尝试从文件菜单中取消缓存并重新启动
。您是否使用Java 9模块?这可能与此有关:例如,如果存在有效的Java 9模块IDE,则将其类放入模块路径中,而不是f类路径。如果您可以在示例项目中复制它,请随时向复制程序提交问题。@Andrey不,我在我们的项目中没有使用任何模块(没有模块信息.java)。这是一件奇怪的事情。我在使用Spring Quartz和Blaze Persistence时也遇到同样的问题。重新启动类加载程序可能会在某些库中失败: