【发布时间】:2011-04-25 01:37:13
【问题描述】:
我在src/main/clojure/za/co/pb/maven_test/test.clj文件中有以下内容:
(ns za.co.pb.maven-test.test
(:gen-class))
(defn -main []
(println "Hello world!"))
我还有一个 POM,它在编译执行时对 clojure-maven-plugin 有必要的依赖。
如果我执行mvn package 命令,我会得到一个target/maven-test-1.0-SNAPSHOT.jar 文件,如果我查看类文件夹,我会在target/classes/za/co/pb/maven_test 文件夹中找到这些文件:
test.classtest.cljtest__init.classtest$loading__4410__auto__.classtest$_main.class
据我所知,这是合适的。
但是,当我运行这个命令时:
java -cp target\app-1.0-SNAPSHOT.jar za.co.pb.maven_test.test
我明白了:
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/lang/IFn
Caused by: java.lang.ClassNotFoundException: clojure.lang.IFn
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: za.co.pb.maven_test.test. Program will exit.
【问题讨论】: