2010-07-04 87 views
3

我试图通过执行Java命令从Clojure中的文件获取上次修改的时间。 通过使用java.io.File.lastModified我应该能够获得UNIX时间,这不会通过执行脚本或在REPL中工作。Java命令lastModified()在Clojure中不工作

我的代码是: (java.io.File.lastModified “/home/lol/lolness.txt”)

,我的错误是: 抛出java.lang.ClassNotFoundException:java.io.File中。 lastModified(NO_SOURCE_FILE:24)

(java.io.File.separator)工作,但是。

编辑: Clojure的版本1.2.0主-SNAPSHOT Java版本的OpenJDK 1.6.0

回答

7

lastModifiedjava.io.File对象的方法。访问它Clojure中,使用以下语法:

(.lastModified (java.io.File. "/home/lol/lolness.txt")) 

注意,命名空间clojure.contrib.java-utils(1.1)/ clojure.java.io(前沿)提供一个函数file这使得java.io.File对象的创建更方便。由于您处于最前沿,以下内容应该适用于您:

(require '[clojure.java.io :as io]) 
(.lastModified (io/file "/home/lol/lolness.txt"))