【发布时间】:2016-06-04 17:49:40
【问题描述】:
我发现 lein 的新应用可以作为 uberjar 运行,但不能作为 jar 运行。它应该以这种方式工作,还是我的设置有问题?
$ lein new app feedme
$ cd feedme
Lein uberjar 工作正常:
$ lein uberjar
Compiling feedme.core
Created .../feedme/target/uberjar+uberjar/feedme-0.1.0-SNAPSHOT.jar
Created .../feedme/target/uberjar/feedme-0.1.0-SNAPSHOT-standalone.jar
$ java -jar target/uberjar/feedme-0.1.0-SNAPSHOT-standalone.jar
Hello, World!
Lein jar 失败:
$ lein jar
Warning: The Main-Class specified does not exist within the jar. It may not be executable as expected. A gen-class directive may be missing in the namespace which contains the main method.
Created .../feedme/target/feedme-0.1.0-SNAPSHOT.jar
$ java -jar target/feedme-0.1.0-SNAPSHOT.jar
Error: Could not find or load main class feedme.core
core.clj 的 ns 部分中有一个 :gen-class 指令,所以我不确定问题是什么:
$ cat src/feedme/core.clj
(ns feedme.core
(:gen-class))
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "Hello, World!"))
【问题讨论】: