这是这个问题的后续。
运行“lein jar”后,我得到“myproject-1.0.0-SNAPSHOT.jar”,其中不包含 clojure-1.2.0-beta1.jar 和 clojure-contrib-1.2.0-beta1.jar。
运行“lein uberjar”会给我两个 jar 文件。第一个(以 -standalone.jar 结尾)是包含所有内容的 jar,第二个与使用“lein jar”生成的 jar 相同。
这是第二个罐子的问题。正如我在上一篇文章中解释的那样,使用第一个 jar 运行没有问题。
当我跑
java -cp PATH_TO_THE_CLOJURE_AND_CONTRIB.jar:$CLASSPATH -jar myproject-1.0.0-SNAPSHOT.jar'
,我收到以下错误。
引起:java.lang.ClassNotFoundException:clojure.lang.IFn 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248)
可能有什么问题,如果我使用 -cp 选项指向 jar 文件,我想我可以像使用“myproject-1.0.0-SNAPSHOT-standalone.jar”一样使用“myproject-1.0.0-SNAPSHOT.jar”。
还有什么我必须做的吗?
添加
java -cp ALLTHE_JAR_PATH myproject.core
解决问题。