首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当调用clj-time/每月最后一天时,Clojure java.lang.NoClassDefFoundError

当调用clj-time/每月最后一天时,Clojure java.lang.NoClassDefFoundError
EN

Stack Overflow用户
提问于 2016-10-28 16:04:51
回答 1查看 320关注 0票数 0

我打电话给

代码语言:javascript
复制
(clj-time.core/last-day-of-the-month 1999 2)

代码语言:javascript
复制
(clj-time.core/number-of-days-in-the-month 1999 2)

双掷

代码语言:javascript
复制
java.lang.NoClassDefFoundError org/joda/time/DateTime$Property  org.joda.time.DateTime.dayOfMonth (DateTime.java:1971)

医生说:

代码语言:javascript
复制
(defn last-day-of-the-month
  ([^long year ^long month]
        (last-day-of-the-month- (date-time year month)))
  ([dt]
        (last-day-of-the-month- dt)))

(defn number-of-days-in-the-month
  (^long [^DateTime dt]
         (day (last-day-of-the-month- dt)))
  (^long [^long year ^long month]
         (day (last-day-of-the-month- (date-time year month)))))

我做错什么了?

谢谢!

以下是我的项目设置和依赖关系:

代码语言:javascript
复制
(defproject xxx "0.1.2-SNAPSHOT"
:description ""
:dependencies [[org.clojure/clojure "1.8.0"]

...
             [clj-time "0.11.0"]          

...)

我试过这个项目:

代码语言:javascript
复制
clj-time=> clj-time.core/last-day-of-the-month
#object[clj_time.core$last_day_of_the_month 0x6a86b560 "clj_time.core$last_day_of_the_month@6a86b560"]

上面的结果是从我通过ssh连接到的repl服务器上得到的。

在本地项目文件夹中运行lein repl时,可以获得正确的结果:

代码语言:javascript
复制
xxx.core=> (clj-time.core/last-day-of-the-month 2016 2)
#object[org.joda.time.DateTime 0x22a0534e "2016-02-29T00:00:00.000Z"]
xxx.core=> (clj-time.core/number-of-days-in-the-month 2016 2)
29

我是新来的。这些信息有用吗?

重新启动repl之后,这个问题现在就解决了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-28 16:25:43

对我来说很好。

project.clj:

代码语言:javascript
复制
(defproject clj "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [
    [org.clojure/clojure "1.9.0-alpha13"]
    [clj-time "0.12.0"]
  ]
  :java-source-paths ["/home/alan/xpr/src"]
  :main ^:skip-aot clj.core
  :target-path "target/%s"
  :profiles {:dev      {:dependencies [[org.clojure/test.check "0.9.0"]] }
             :uberjar  {:aot :all}}
)

主程序:

代码语言:javascript
复制
(ns clj.core
  (:require 
    [clj-time.core :as tm] 
  ))

(println :day  (tm/last-day-of-the-month 1999 2))

(println :days (tm/number-of-days-in-the-month 1999 2))

(defn -main [& args])

结果:

代码语言:javascript
复制
~/clj > lein run    
:day #object[org.joda.time.DateTime 0x61884cb1 1999-02-28T00:00:00.000Z]
:days 28
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40309004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档