在Eclipse中,使用CCW插件,我想将clojure文件加载到REPL中。问题是我有一个我自己的java类的import语句,但显然它不在我的类路径中。
(ns my-clj-ns
(:import [alg.gen Enumerator]))
我是否必须在Clojure REPL中为每个我想要使用/测试的课程制作罐子?
目前,尝试将我的clj加载到REPL会导致错误: “在Clojure REPL中加载文件”没有正常完成。有关更多信息,请参阅日志。 显示java.lang.NullPointerException
非常感谢任何帮助。
答案 0 :(得分:1)
您可以让leiningen使用
为您编译这些内容:javac-options {:destdir "classes/"}
:java-source-path "src/main/java" ; location of Java source
选项或手动编译它们并将类文件移动到classes /目录。无需创建jar。
答案 1 :(得分:1)
当你进入ccw repl时,你可以点击alt-e来查看堆栈跟踪。如果你得到一个NullPointerException,我认为它不是一个类路径问题。
答案 2 :(得分:0)
您的代码对我来说很好。
我怀疑问题出在Eclipse Java Build Path 上,它决定了Eclipse在应用程序的类路径中包含的内容。
特别是,如果您的Java类位于单独的项目中,则需要将该项目添加到构建路径(右键单击项目/属性/ Java构建路径/项目)或将其打包为jar。 / p>
当您开始拥有更复杂的构建要求时,您可能还想开始查看Maven以便为您处理此类事情。 Maven是一个学习/设置的痛苦,但从长远来看它是值得的。
Leiningen也是一个很好的工具,但由于以下原因我个人不使用它:
答案 3 :(得分:0)
如果你想学习如何做到这一点,那就非常好了。
https://github.com/technomancy/leiningen/blob/master/doc/MIXED_PROJECTS.md
但是在gist中,有一个类似于Java源代码的项目定义。
(defproject megacorp/superservice "1.0.0-SNAPSHOT"
:description "A Clojure project with a little bit of Java sprinkled here and there"
:source-paths ["src/clojure"]
:java-source-paths ["src/java"])