これはこの質問のフォローアップです。
「lein jar」を実行した後、「myproject-1.0.0-SNAPSHOT.jar」を取得します。これには、clojure-1.2.0-beta1.jar と clojure-contrib-1.2.0-beta1.jar が含まれていません。
「lein uberjar」を実行すると、2 つの jar ファイルが生成されます。最初のもの (-standalone.jar で終わる) はすべてが含まれている jar で、2 番目のものは「lein jar」で生成された jar と同じです。
これは、2番目の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
問題を解決します。