質問
これはフォローアップ この質問.
実行後、'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を含むものと同一のjarを生成'lein jar'.
このように、jarのです。問題はありません走りと最初のjarてご説明した前 ポスト.
する活動を行う意欲
java -cp PATH_TO_THE_CLOJURE_AND_CONTRIB.jar:$CLASSPATH -jar myproject-1.0.0-SNAPSHOT.jar'
, を取得し、以下のエラーになります。
Caused by: java.lang.ClassNotFoundException: clojure.lang.IFn at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
か、ビルギッタがなぜ間違っているのは、思いついたのmyproject-1.0.0-SNAPSHOT.jar 同じようには"myproject-1.0.0-SNAPSHOT-standalone.jar'すれば、jarファイルを使用-cpのオプションです。
あるものである、ということをしていたのか?
追加
java -cp ALLTHE_JAR_PATH myproject.core
を解決の問題です。
解決
使用している場合は、Leiningen1.2だと思っている時でもバグが依存関係が削除されると以前の作uberjarろに倒のuberjar).下記から格下げ1.1にした場合には、新しいリリース(すべきでお越しくは使用精算のleinには日本に記載のハッキングLeiningenにleinのREADME).
まだ、対応することができるでしょう製造単壺 lein uberjar
というと java -jar name-of-your-standalone.jar
にアプリです。
代替手法として、を作成できます通常の壺 lein jar
と言うようなもの java -cp '$PROJECT_ROOT/lib/*:your-app.jar' your-app.main
( your-app.main
はアプリケーションのメインクラスまた、差替え $PROJECT_ROOT
適切なパス供給パス your-app.jar
, ますか?の lib/*
ものだけに作用すJDK1.6;1.5いりますが、jarます。 ご利用の場合 -jar
, -cp
や $CLASSPATH
は無視されます;のみをクラスパスで指定されたjarマニフェストの場合は考慮されます。