【问题标题】:Import local Java class into Clojure将本地 Java 类导入 Clojure
【发布时间】:2013-12-31 02:56:02
【问题描述】:

我了解在 clojure 中导入 Java 类的一般思路,如下所示:

(import 'a.random.Class)

但是,假设我有一个文件 Example.java,其中包含我想使用的“示例”类,如何导入这样的东西?

抱歉,如果已经回答了这个相当愚蠢的问题,我一直在四处寻找,但在发布之前一无所获,并提前感谢任何可以阐明的人。

【问题讨论】:

    标签: clojure clojure-java-interop


    【解决方案1】:

    为了能够使用Example.java 中定义的类,您必须对其进行编译并将生成的类文件放在类路径中。

    如果此 Java 文件是 Clojure 项目中的助手,您可以使用 Leiningen 自动执行该过程:

    (defproject foo "1.2.3-SNAPSHOT"
      ; ...
      :java-source-paths ["src/main/java"]
      )
    

    假设Example.java 位于src/main/java 的子目录中,当您使用它启动REPL 或准备项目的jar 时,Leiningen 将编译它并将其包含在类路径中。 (还有 :javac-options 用于指定要作为字符串向量传递给 Java 编译器的选项。)

    如果您的 Java 源代码树更广泛且独立于项目的 Clojure 端,则将其打包为单独的 Java 项目可能更有意义。 Clojure 端将使用 Java 项目作为依赖项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-17
      • 2013-07-16
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 2022-01-20
      • 2011-11-24
      • 1970-01-01
      相关资源
      最近更新 更多