繁体   English   中英

clojure / lein:如何在我的项目中包含一个java文件?

[英]clojure/lein: How do I include a java file in my project?

我有一个带有单个类的java文件,我想将它包含在我的lein项目中。 我在哪里放它以及如何导入它? (我尝试将它放在包路径下的src目录中,但它告诉我ClassNotFound)

所以java文件有这个包声明:

package com.thebuzzmedia.imgscalr;

并有这个类:

public class Scalr {

我把它放在〜/ src / com / thebuzzmedia / imgscalr / Scalr.java中并试图从repl导入它:

(import '(com.thebuzzmedia.imgscalr Scalr))

我得到了这个:

com.thebuzzmedia.imgscalr.Scalr
[Thrown class java.lang.ClassNotFoundException]

我错过了什么?

放置Java源的位置实际上取决于您正在使用的构建系统。 如果您正在使用Leiningen, 则必须配置源路径:

(defproject my-project "0.0.1-SNAPSHOT"
  [...]
  :java-source-paths ["src/java" "test/java"])

然后,您可以在代码中的源位置或REPL中导入Java类,就像您已经尝试过的那样。

从Leiningen 2.X开始, :java-source-path已被替换为:java-source-paths ,其值现在被指定为向量而不是字符串。

例:

(defproject my-project "0.0.1-SNAPSHOT"
  [...]
  :java-source-paths ["src/main/java" "src/main/test"]
  ...)

由于我没有对上述答案发表评论的声誉,我没有办法,只能留下我自己的,不那么微不一样的答案。

正确的语法(从Leiningen 2.1.3开始)是:

(defproject
    ...
    :java-source-paths ["src/main/java/" "foo/bar/baz/"]
    ...
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM