我想有两个主要的类(或更多)与 leiningen,然后能够在 java 命令行中选择哪一个。例如我有:
(ns abc (:gen-class))
(defn -main [] (println "abc"))
(ns def (:gen-class))
(defn -main [] (println "def"))
使用 project.clj 具有:
(defproject my-jar "0.0.1"
:description "test"
:dependencies [
]
:main abc)
然后我用 构建lein uberjar
并运行:
java -cp my-jar-0.0.1-standalone.jar abc
java -cp my-jar-0.0.1-standalone.jar def
我知道,当我在 project.clj 中指定时,它会将其作为清单中的主类调用,但是如果不放置某些东西:main abc
,我就无法让它运行。但无论哪种方式,当我尝试运行“def”主程序时,我都找不到一个类:
Exception in thread "main" java.lang.NoClassDefFoundError: def