2010-07-04 5 views
3

Je suis en train d'obtenir la dernière modification d'un fichier dans Clojure, en exécutant une commande Java. En utilisant java.io.File.lastModified je suis censé être en mesure d'obtenir le temps UNIX, cela ne fonctionne pas par l'exécution du script ou dans le REPL.Java commande lastModified() ne fonctionne pas dans Clojure

Mon code est: (java.io.File.lastModified "/home/lol/lolness.txt")

et mon erreur: java.lang.ClassNotFoundException: java.io.File. lastModified (NO_SOURCE_FILE: 24)

(java.io.File.separator) fonctionne, cependant.

EDIT: Version 1.2.0 Clojure maître-INSTANTANÉ version Java OpenJDK 1.6.0

Répondre

7

lastModified est une méthode de java.io.File objets. Pour y accéder à Clojure, utilisez la syntaxe suivante:

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

Notez que les espaces de noms clojure.contrib.java-utils (1,1)/clojure.java.io (de saignement) fournissent bord une fonction file qui rend plus pratique la création de java.io.File objets. Puisque vous êtes sur le bord de la sangle, ce qui suit devrait fonctionner pour vous:

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