質問

これはフォローアップ この質問.

実行後、'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.mainyour-app.main はアプリケーションのメインクラスまた、差替え $PROJECT_ROOT 適切なパス供給パス your-app.jar, ますか?の lib/* ものだけに作用すJDK1.6;1.5いりますが、jarます。 ご利用の場合 -jar, -cp$CLASSPATH は無視されます;のみをクラスパスで指定されたjarマニフェストの場合は考慮されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top