2014-12-18 2 views
0

우리는 몇 가지 Clojure 코드를 작성하려고합니다. 몇 분 전에 성공적으로 컴파일했지만 지금은이 예외가 발생합니다.java.lang.IllegalArgumentException : 해결할 수 없습니다 classname : FileReader

(ns myproject.core) 

(defmacro safe ([bindings & code] form) 
(if (list? bindings) 
`(try 
    ~bindings 
    (catch Throwable except# except#)) 

(if (= (count bindings) 0) 
    `(try ~code 
    (catch Throwable except# except#)) 



`(let ~(subvec bindings 0 2) 

(try 
    (safe ~(subvec bindings 2) [email protected]) 
    (catch Throwable except# except#) 

    (finally 
    (. ~(bindings 0) close))))))) ;;safe 


(def div(safe (/ 12 2))) 
(def v (safe [s (FileReader. (java.io.File. "M:/test.txt"))] (. s read))) 

답변

1

우리는 문제를 발견

CompilerException java.lang.IllegalArgumentException: Unable to resolve classname: FileReader, compiling:(myproject\core.clj:24:17) 

는 여기에 우리의 코드입니다.

java에서 FileReader를 가져와야했습니다.

(import '(java.io FileReader File)) 
+0

또는 java.io.File과 마찬가지로 가져 오기없이 정규화 된 이름을 사용할 수 있습니다. –

관련 문제