【问题标题】:NoClassDefFoundError generated from Spring Tool Suite wizard从 Spring Tool Suite 向导生成的 NoClassDefFoundError
【发布时间】:2018-03-27 18:04:51
【问题描述】:

我被指示使用 STS(Spring Tool Suite)来参加我注册的 Java 课程。我已经下载了平台 Eclipse Oxygen 3 (4.7.3) 的 STS 版本 3.9.3。

当我启动 STS 时,我会执行以下操作:

  1. 点击文件->新建->导入Spring入门内容

  2. 我搜索休息

  3. 我选择了带有初始和完整代码集的休息服务

  4. 生成应用程序后,我导航到 gs-rest-service-complete/src/main/java/hello 子目录,我会看到 Application.java、Greeting.java 和 GreetingController.java。

  5. 我点击绿色的运行按钮,我在控制台中得到以下输出:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/util/Assert
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:263)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:247)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
    at hello.Application.main(Application.java:10)
    Caused by: java.lang.ClassNotFoundException: org.springframework.util.Assert
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 5 more
    

我没有对任何配置设置或任何代码进行任何修改。我对这个应用程序和 Java 编程是全新的。为什么我会收到此错误?如何解决?

谢谢。 乔纳森

【问题讨论】:

  • 你选择什么构建类型 Maven/Gradle?
  • @SounakSaha 我没有更改向导上的任何设置。构建类型默认为 Maven。

标签: java spring


【解决方案1】:

当您使用 Maven 构建类型时,您需要在项目中执行此步骤。

  • 右键单击 gs-rest-service-complete 项目 >> 运行方式 >> Maven 构建/ Maven 安装
    此步骤将需要几分钟来下载所有与 Spring Boot 相关的 jar。确保 maven 构建/安装成功。
  • maven构建成功后右键Application.java >> Run As >> Java Application / Spring Boot App
    确保 8080 端口没有应用程序正在运行
  • 您可以通过 'http://localhost:8080/greeting' URL 测试其余调用

【讨论】:

  • 当我右键单击 gs-rest-service-complete 然后单击 Run As,我看到 Maven Build、M​​aven Build...、Maven clean、Maven Generate Sources 和 Maven Install。当我单击第一个 Maven 构建时,我会看到一个编辑配置和启动对话框。当我运行第二个 Maven 构建时也是如此。当我将它作为 Maven Clean 运行时,我得到了 BUILD SUCCESS 但我也得到了一个警告:请求的配置文件“pom.xml”不能被激活,因为它不存在。即使该文件确实存在
  • 当我将它作为 Maven 安装运行时,我得到一个编译错误:在这个环境中没有提供编译器。也许您在 JRE 而不是 JDK 上运行?而且我还在底部看到: [错误] 无法在项目 gs-rest-service 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile): Compilation failure [错误] 此环境中未提供编译器。也许您在 JRE 而不是 JDK 上运行?
  • 是的,选择 Windows >> Preference >> Java >> Installed JRE >> Add your JDK location
  • 我看到一个已安装的 JRE,jrs1.8.0_121(默认)。我在这里看不到任何添加 JDK 的方法。我单击搜索并导航到 c:\program files\java 并看到 3 个文件夹,jdk-9.0.4、jre1.8.0_121 和 jre-9.0.4。我点击了 jdk-9.0.4 但它返回 No JRE's found in C:\program files\Java\jdk-9.0.4
  • 从下面的链接docs.oracle.com/javase/8/docs/technotes/guides/install/…安装正确的JDK版本
猜你喜欢
  • 1970-01-01
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
相关资源
最近更新 更多