2009-03-03 13 views
7

저는 Clojure에서 매우 간단한 test.clj를 아무런 성공없이 컴파일하려고했습니다. 몇 가지 응답이있는 에 thread이 있지만 아무 것도 도움이되지 않았습니다.Clojure에서 컴파일 할 때의 문제

(ns test.test 
    (:gen-class)) 

(defn -main 
    [gre] 
    (println (str "Hello " gre))) 

은 기본적으로는 Clojure documentation에서 제공되는 예제 파일입니다 : 신속하게 요약하면, 여기 내 Clojure의 파일입니다.

clojure/src/test/test.clj에이 파일을 적절하게 배치 했으므로 (compile 'test.test)으로 컴파일 할 수 있어야합니다. 그러나 오류가 계속 발생합니다 :

java.io.IOException: The system cannot find the path specified (test.clj:1)
로 인해 클래스 패스 문제가 발생합니다. 나는 Clojure documenation에 주어진 모든 표준 명령과 스레드 java -classpath .;src;classes;clojure.jar clojure.main의 최신 제안을 사용하여 Clojure를 실행 해 보았습니다.

-+-clojure 
+-classes/ 
+-+-src/ 
| |-+-test/ 
| | \-test.clj 
+-\-test.clj 
+-test.clj 
+-clojure.jar 

추신 : 도움이된다면

, 내 파일 시스템은 다음과 같습니다 Vista Ultimate에서 실행 중이므로 이 사용 권한 문제가 될 수 있지만 권한을 확인 했으므로 아무 것도 찾을 수 없습니다. Windows에서 test.clj를 컴파일

답변

9

콘솔 출력 :

C:\clojure>dir /b/s 
C:\clojure\classes 
C:\clojure\src 
C:\clojure\src\test 
C:\clojure\src\test\test.clj 

C:\clojure>java -cp c:\dev\clojure.jar;.\src;.\classes clojure.lang.ReplClojure 
user=> (compile 'test.test) 
test.test 
user=> 

생성 된 클래스 파일이 classes 디렉토리에 있습니다.

또한 에 오른쪽 괄호가 누락되어 있습니다. 수정 버전 :

(ns test.test 
    (:gen-class)) 

(defn -main 
    [gre] 
    (println (str "Hello " gre))) 
+0

Excelent! 고마워요. 예쁘게 작동합니다. 또한 나는 그 클로즈 - 펜슬이 복사/붙여 넣기에서 잘려 졌기 때문에 질문을 편집 할 것입니다. – Mike

+0

안녕하세요. 동일한 문제가 발생합니다. 무엇이 잘못 될 수 있습니까? 해결책을 시도했습니다 : C : \ clojure> java -cp clojure-1.0.0.jar;. \ src;. \ classes clojure.lang.Repl user => (test.test 컴파일) java.io .IOException : 시스템이 지정된 경로를 찾을 수 없습니다. (test.clj : 1) – unj2

+1

이것은 CLASSPATH에 클래스/디렉토리가 없음을 의미합니다. –

0
C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test