Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向Clojure添加类_Java_Clojure_Interop - Fatal编程技术网

Java 向Clojure添加类

Java 向Clojure添加类,java,clojure,interop,Java,Clojure,Interop,在我的clojure项目中,我依赖javax.jms.MessageListener库。我在项目中的以下目录中有这个类文件 My-project |java- | |src - | | |myJavaFile.java | | |jars - | | |library1.jar | | |library2.jar | | |libarary3.jar | |javax - | | |jms

在我的clojure项目中,我依赖javax.jms.MessageListener库。我在项目中的以下目录中有这个类文件

My-project
|java-
|    |src -
|    |    |myJavaFile.java
|    |    |jars -
|    |       |library1.jar
|    |       |library2.jar
|    |       |libarary3.jar
|    |javax -
|    |      |jms -
|    |          |MessageListener.class
|project.clj
|src -
|    |my-program1.clj
|    |my-program2.clj
|    |my-program3.clj
然后在project.clj文件中,我将java源路径设置为

:java-source-paths ["java/src" "java/src/jars/" "java/javax/jms"]
但当我通过leinrepl运行我的项目时,我会发现编译错误

java.lang.NoClassDefFoundError:javax/jms/MessageListener

原因:java.lang.ClassNotFoundException:javax.jms.MessageListener


从我读到的信息来看,当项目运行时,messagelistener.class和我的库jar应该包含在我的类路径中,但事实似乎并非如此

据我所知,java项目的目录结构必须与名称空间的名称相匹配。例如,package_name.classname必须位于类路径上的package_name文件夹中


当然,使用Leiningen或Boot,您只需将
[javax.jms/jms-api“1.1-rev-1”]
添加到
:依赖项中即可

嗯,罐子显然不是来源。看看这个