【问题标题】:Setting CLASSPATH for Clojure project为 Clojure 项目设置 CLASSPATH
【发布时间】:2011-03-28 00:17:16
【问题描述】:

我有一个简单的项目结构:

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
但我得到了:

线程“主”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

现在运行正常。

【问题讨论】:

    标签: clojure jvm classpath jvm-languages


    【解决方案1】:

    来自java 手册页中关于-jar 选项:

    当您使用此选项时,JAR 文件 是所有用户类的来源,并且 其他用户类路径设置是 忽略。

    所以这有点令人沮丧,但好消息是您可以通过使用不同的启动语法 (referenced at clojure.org) 来解决这个问题:

    java -cp $CLASSPATH clojure.main src/wizard-game.clj
    

    或者,使用Leiningen 之类的工具为您管理项目的类路径和依赖项!

    【讨论】:

    • 如何在 Lein 中运行独立的 Clojure 文件?
    • 不确定该文件,但您可以使用 'lein run namespace' 运行命名空间(witch 应该是一样的)。
    【解决方案2】:

    这是对您“如何在 Lein 中运行独立的 Clojure 文件?”的回应。你应该看看 lein run。我不确定当前状态,但有一个独立的 Lein 插件,现在至少有一些(可能是全部)功能默认内置到 lein 中。

    尝试在命令行中运行lein help run 以进行快速介绍。

    独立的 lein 运行项目。文档可能有用。不是 100% 确定它是否与内置的 lein run 匹配,但我从我自己的使用中知道至少其中一些匹配。

    https://github.com/sids/lein-run

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多