我正在进行Clojure编程,最近我从图书官方网站下载了代码。对于其他实用程序,我可以做,例如,(require 'clojure.contrib.str-utils),它可以工作。但是如何从书中加载代码呢?(require 'examples.introduction)抛出了以下异常:
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的NetBeans中尝试了Clojure Box和Enclojure。这是一个类路径问题吗?我应该把包含书中代码的文件夹放在哪里?请帮我解决变量环境设置的问题。
发布于 2009-12-23 20:04:06
这本书建议您使用bin目录中的脚本。如果您阅读了repl.sh或repl.bat,就会告诉您需要在类路径上放置什么才能使一切正常工作。如果你在为Clojure设置类路径或理解路径结构如何与名称空间名称结构相对应时遇到问题,那么在哪里可以解释这个问题;例如,请参阅my answer here。(如何告诉java使用什么类路径的基础知识将取决于您如何启动它,如果需要,请在文档中查找NetBeans。)
简而言之,我建议您从repl.sh / repl.bat中获取类路径,并在通过您选择的方法启动REPL时使用它。或者使用适当的脚本(在您的例子中应该是.bat版本)启动一个REPL。
最后,将代码放在哪里并不重要,只要相应地设置类路径即可。
发布于 2010-03-23 06:27:57
我正在使用NetBeans上的Enclojure编写Clojure。为了使用Enclojure的REPL,我只需将书中代码中的JAR文件导入到我的Clojure项目中。这包括
除了我手动创建的包含lib/目录及其内容(下图中的PCexamples.jar)的jline-0.9.94.jar
lib/目录中的所有JAR文件

https://stackoverflow.com/questions/1800099
复制相似问题