pri*_*ing 21 java import clojure
我有一个带有单个类的java文件,我想将它包含在我的lein项目中.我在哪里放它以及如何导入它?(我尝试将它放在包路径下的src目录中,但它告诉我ClassNotFound)
所以java文件有这个包声明:
package com.thebuzzmedia.imgscalr;
Run Code Online (Sandbox Code Playgroud)
并有这个类:
public class Scalr {
Run Code Online (Sandbox Code Playgroud)
我把它放在〜/ src/com/thebuzzmedia/imgscalr/Scalr.java中,并试图从repl导入它:
(import '(com.thebuzzmedia.imgscalr Scalr))
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
com.thebuzzmedia.imgscalr.Scalr
[Thrown class java.lang.ClassNotFoundException]
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
sku*_*uro 24
放置Java源的位置实际上取决于您正在使用的构建系统.如果您正在使用Leiningen,则必须配置源路径:
(defproject my-project "0.0.1-SNAPSHOT"
[...]
:java-source-paths ["src/java" "test/java"])
Run Code Online (Sandbox Code Playgroud)
然后,您可以在代码中的源位置或REPL中导入Java类,就像您已经尝试过的那样.
Kik*_*dez 12
从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"]
...)
Run Code Online (Sandbox Code Playgroud)
由于我没有对上述答案发表评论的声誉,我没有办法,只能留下我自己的,不那么微不一样的答案.
正确的语法(从Leiningen 2.1.3开始)是:
(defproject
...
:java-source-paths ["src/main/java/" "foo/bar/baz/"]
...
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6674 次 |
| 最近记录: |