You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring入门报错java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

问题分析与解决

错误原因

java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext 核心问题是:编译时能找到Spring相关类,但运行时类路径里缺少Spring核心依赖的jar包。

解决步骤

1. 确认所需的Spring核心依赖

你需要以下几个核心jar包(版本建议和教程使用的Spring版本匹配,比如教程用3.x就对应3.x版本):

  • spring-context.jar
  • spring-core.jar
  • spring-beans.jar
  • spring-expression.jar
  • commons-logging.jar(Spring依赖的日志组件)

2. 普通Java项目(手动管理jar)的配置

如果你的项目是手动添加jar的普通Java项目:

  • 在项目根目录新建lib文件夹,把上述jar包复制进去
  • 在IDE中配置运行时类路径:
    • Eclipse:右键项目 → Build Path → Add External Archives,选中lib下的所有jar;或者右键lib文件夹 → Build Path → Add to Build Path
    • IDEA:File → Project Structure → Modules → Dependencies,点击+号选择JARs or directories,选中lib下的jar,确保Scope设置为Compile或Runtime

3. Maven项目(推荐方式)的配置

如果用Maven管理项目,直接在pom.xml中添加Spring Context依赖,Maven会自动下载所有关联的依赖jar:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.20</version> <!-- 替换为教程对应的版本,比如3.2.18.RELEASE -->
    </dependency>
</dependencies>

添加后刷新Maven依赖即可。

额外修正:控制台输出结果

你的MainApp代码中只调用了obj.getMessage(),但没有把结果输出到控制台,所以即使运行成功也看不到内容。需要修改代码:

public static void main(String[] args) {
    ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
    Hello obj = (Hello) context.getBean("helloWorld");
    
    // 添加输出语句
    System.out.println(obj.getMessage());
}

内容的提问来源于stack exchange,提问作者servolt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:01:14