2009-11-25 4 views
3

프로그래밍 Clojure를 거쳐 최근 책 공식 웹 사이트에서 코드를 다운로드했습니다. 예를 들어, (require 'clojure.contrib.str-utils)과 같은 다른 유틸리티의 경우 작동합니다. 하지만 책에서 코드를로드하려면 어떻게해야합니까?클래스 패스 설정 및 책에서 코드 액세스 : 프로그래밍 Clojure

java.io.FileNotFoundException: Could not locate examples/ introduction__init.class or examples/introduction.clj on classpath: 
(NO_SOURCE_FILE:0) 
    [Thrown class clojure.lang.Compiler$CompilerException] 

Here is the full backtrace: 

Backtrace: 
    0: clojure.lang.Compiler.eval(Compiler.java:4543) 
    1: clojure.core$eval__3990.invoke(core.clj:1728) 
    2: swank.commands.basic$eval_region__686.invoke(basic.clj:36) 
    3: swank.commands.basic$listener_eval__695.invoke(basic.clj:50) 
    4: clojure.lang.Var.invoke(Var.java:346) 
    5: user$eval__1200.invoke(NO_SOURCE_FILE) 
    6: clojure.lang.Compiler.eval(Compiler.java:4532) 
    7: clojure.core$eval__3990.invoke(core.clj:1728) 
    8: swank.core$eval_in_emacs_package__307.invoke(core.clj:55) 
    9: swank.core$eval_for_emacs__384.invoke(core.clj:123) 
10: clojure.lang.Var.invoke(Var.java:354) 
11: clojure.lang.AFn.applyToHelper(AFn.java:179) 
12: clojure.lang.Var.applyTo(Var.java:463) 
13: clojure.core$apply__3243.doInvoke(core.clj:390) 
14: clojure.lang.RestFn.invoke(RestFn.java:428) 
15: swank.core$eval_from_control__310.invoke(core.clj:62) 
16: swank.core$eval_loop__313.invoke(core.clj:67) 
17: swank.core$spawn_repl_thread__445$fn__476$fn__478.invoke(core.clj: 
173) 
18: clojure.lang.AFn.applyToHelper(AFn.java:171) 
19: clojure.lang.AFn.applyTo(AFn.java:164) 
20: clojure.core$apply__3243.doInvoke(core.clj:390) 
21: clojure.lang.RestFn.invoke(RestFn.java:428) 
22: swank.core$spawn_repl_thread__445$fn__476.doInvoke(core.clj:170) 
23: clojure.lang.RestFn.invoke(RestFn.java:402) 
24: clojure.lang.AFn.run(AFn.java:37) 
25: java.lang.Thread.run(Unknown Source) 

내가 Windows XP에서 넷빈즈에서 Clojure의 상자와 Enclojure 모두 노력하고 있어요 : (require 'examples.introduction)는 다음과 같은 예외가 발생합니다. classpath 문제입니까? 책의 코드가 들어있는 폴더는 어디에 두어야합니까? 제 환경 변수 설정도 도와주세요.

+0

자바 태그도 추가하는 것이 좋습니다. –

답변

3

이 책에서는 bin 디렉토리에있는 스크립트를 사용하는 것이 좋습니다. 또는 repl.bat을 읽으면 모든 것이 작동하도록 클래스 경로에 넣어야 할 것을 알려줍니다. Clojure에 대한 클래스 경로를 설정하는 데 어려움이 있거나 경로 구조가 네임 스페이스 이름 구조에 해당하는 방식을 이해하는 데 문제가있는 경우 SO 위치에 대한 설명이 많이 있습니다. 예 : 내 대답 here을 참조하십시오. (사용하는 클래스 패스를 알려주는 방법의 기본은 필요한 경우 NetBeans의 문서에서 찾으십시오.)

즉, 클래스 패스를 사용하는 것이 좋습니다. repl.sh/repl.bat에서 선택 방법을 통해 REPL을 시작할 때 사용하십시오. 또는 적절한 스크립트 (귀하의 경우 .bat 버전)를 사용하여 REPL을 실행하십시오.

마지막으로, 그에 따라 클래스 경로를 설정하는 한 코드를 어디에 두어도 상관 없습니다.

2

NetBeans의 Enclojure를 사용하여 프로그래밍 Clojure를 살펴 보겠습니다. Enclojure의 REPL을 사용하기 위해 방금 책의 코드에있는 JAR 파일을 Clojure 프로젝트로 가져 왔습니다. 즉 jline-0.9.94.jar

  • 내가 (아래 이미지에서 PCexamples.jar)를 examples/ 디렉토리 와 그 내용이 포함 된 손으로 만든 JAR 파일
  • 을 제외하고 lib/ 디렉토리에

    1. 모든 JAR 파일을 포함

    Libraries folder in NetBeans

    관련 문제