将 类 添加到 Clojure
Adding Classes to Clojure
在我的 clojure 项目中,我依赖于 javax.jms.MessageListener 库。我的项目中有这个 class 文件,位于以下目录
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-source-paths 设置为
:java-source-paths ["java/src" "java/src/jars/" "java/javax/jms"]
但是当我通过 lein repl 转到 运行 我的项目时,我收到编译错误
java.lang.NoClassDefFoundError: javax/jms/MessageListener
Caused by: java.lang.ClassNotFoundException: javax.jms.MessageListener
根据我的阅读,当项目 运行ning 时,messagelistener.class 和我的库 jar 应该包含在我的 class 路径中,但似乎不是案子。
据我了解,java 项目的目录结构必须与命名空间的名称相匹配。例如 package_name.classname 必须位于类路径 https://docs.oracle.com/javase/tutorial/java/package/managingfiles.html
上的文件夹 package_name 中
当然,使用 Leiningen 或 Boot,您只需将 [javax.jms/jms-api "1.1-rev-1"]
添加到 :dependencies
。
在我的 clojure 项目中,我依赖于 javax.jms.MessageListener 库。我的项目中有这个 class 文件,位于以下目录
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-source-paths 设置为
:java-source-paths ["java/src" "java/src/jars/" "java/javax/jms"]
但是当我通过 lein repl 转到 运行 我的项目时,我收到编译错误
java.lang.NoClassDefFoundError: javax/jms/MessageListener
Caused by: java.lang.ClassNotFoundException: javax.jms.MessageListener
根据我的阅读,当项目 运行ning 时,messagelistener.class 和我的库 jar 应该包含在我的 class 路径中,但似乎不是案子。
据我了解,java 项目的目录结构必须与命名空间的名称相匹配。例如 package_name.classname 必须位于类路径 https://docs.oracle.com/javase/tutorial/java/package/managingfiles.html
上的文件夹 package_name 中当然,使用 Leiningen 或 Boot,您只需将 [javax.jms/jms-api "1.1-rev-1"]
添加到 :dependencies
。