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

使用JodaTime实现公历转伊斯兰历时报org/joda/time/Chronology类不存在错误

问题原因

出现java.lang.NoClassDefFoundError: org/joda/time/Chronology错误的核心原因是:编译期的构建路径已经引入了JodaTime依赖,但运行时JVM的类加载路径没有包含joda-time的jar包,编译和运行的依赖配置不同步。

解决办法

根据你的项目类型选择对应方案即可:

  • 无构建工具的普通Java项目

    若直接用命令行运行,需要手动指定类路径包含jar包:
    # Windows 环境
    java -cp .;lib/joda-time-2.10.10.jar MainActivity
    # macOS/Linux 环境
    java -cp .:lib/joda-time-2.10.10.jar MainActivity
    
    若使用IDEA/Eclipse等IDE:
    1. 右键项目中的lib文件夹,确认已选择「Add as Library」,作用域选择「Project Library」
    2. 打开当前类的运行配置,检查「Classpath」列表中是否已经包含joda-time依赖,缺失则手动添加即可。
  • Maven/Gradle管理的Java项目

    建议直接通过依赖坐标引入,避免手动导入jar的路径问题:
    • Maven 坐标(添加到pom.xml的dependencies节点下):
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.10.10</version>
    </dependency>
    
    • Gradle 依赖(添加到build.gradle的dependencies节点下):
    implementation 'joda-time:joda-time:2.10.10'
    
  • 安卓项目

    确认jar包放在app/libs目录下,然后在app模块的build.gradle依赖配置中添加如下规则,自动引入libs目录下所有jar包:
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        // 其余原有依赖保持不变
    }
    
    同步Gradle配置后重新运行即可。
额外检查项
  • 确认下载的joda-time jar包没有损坏,可重新下载官方发布的版本验证
  • 确认JDK版本和JodaTime 2.10.10兼容,该版本最低支持JDK 8,低于该版本也会触发类加载异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:48:03