Java-команда lastModified () не работает в Clojure - PullRequest
3 голосов
/ 05 июля 2010

Я пытаюсь получить время последнего изменения из файла в Clojure, выполнив команду Java. С помощью java.io.File.lastModified я должен иметь возможность получить UNIX-время, это не работает при выполнении скрипта или в REPL.

Мой код: (java.io.File.lastModified "/home/lol/lolness.txt")

и моя ошибка: java.lang.ClassNotFoundException: java.io.File.lastModified (NO_SOURCE_FILE: 24)

(java.io.File.separator) работает, однако.

EDIT: Clojure версия 1.2.0-мастер-SNAPSHOT Java-версия OpenJDK 1.6.0

1 Ответ

7 голосов
/ 05 июля 2010

lastModified - это метод java.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"))
...