我有一个简单的项目结构:
Base Dir
src ;; Pile of Clojure files
lib ;; Jar files
导出类路径: $ export CLASSPATH = $ CLASSPATH:src:lib / *
尝试运行Clojure文件:
java -cp $ CLASSPATH -jar lib / clojure.jar src / wizard-game.clj
但我得到了:
线程“main”中的异常java.io.FileNotFoundException:找不到类路径上的clojure / contrib / trace_ init.class或clojure / contrib / trace.clj:
引起:java.io.FileNotFoundException:找不到类路径上的clojure / contrib / trace _init.class或clojure / contrib / trace.clj:
好的,这是一个类路径问题,但是我做错了什么/哪里?
有没有更好的方法来尝试运行它?
更新
我试过这个命令:
java -classpath $ CLASSPATH clojure.main src / wizard-game.clj
现在运行正常。
答案 0 :(得分:7)
关于java
选项的-jar
手册页:
使用此选项时,JAR文件 是所有用户类的来源,和 其他用户类路径设置是 忽略。
所以这有点令人失望,但好消息是你可以通过使用不同的启动语法(referenced at clojure.org)解决这个问题:
java -cp $CLASSPATH clojure.main src/wizard-game.clj
或者,使用像Leiningen这样的工具来管理项目的类路径和依赖项!
答案 1 :(得分:3)
这是对你的“如何在Lein中运行独立的Clojure文件?”的回应。你应该看看lein run。我不确定目前的状态,但是有一个独立的Lein插件,现在默认情况下至少有一些(可能全部)功能构建到lein中。
尝试在命令行运行lein help run
以便快速介绍。
独立的lein-run项目。文档可能有用。不是100%确定它是否与内置lein run
匹配,但我从我自己的用法中知道它至少有一些。