2

私は単純なプロジェクト構造を持っています:

Base Dir
   src ;; Pile of Clojure files
   lib ;; Jar files

クラスパスをエクスポートするには: $ export CLASSPATH=$CLASSPATH:src:lib/*

Clojure ファイルを実行しようとしています: java -cp $CLASSPATH -jar lib/clojure.jar src/wizard-game.clj
しかし、私は得た:

スレッド「メイン」の例外 java.io.FileNotFoundException:クラスパスで clojure/contrib/trace_init.class または clojure/contrib/trace.clj を
見つけられませんでした: 原因: java.io.FileNotFoundException: clojure/contrib/ を見つけられませんでしたクラスパスのtrace
_init.class または clojure/contrib/trace.clj:

わかりました、これはクラスパスの問題ですが、何が/どこで間違っていますか?

それを実行しようとするより良い方法はありますか?

更新:
私はこのコマンドを試しました:

java -classpath $CLASSPATH clojure.main src/wizard-game.clj

今は問題なく動作します。

4

2 に答える 2

7

オプションjavaに関するmanページから:-jar

このオプションを使用すると、JAR ファイルがすべてのユーザー クラスのソースとなり、他のユーザー クラス パス設定は無視されます。

これは少し残念ですが、別の起動構文 ( clojure.org で参照)を使用することで、これを回避できるという良いニュースがあります。

java -cp $CLASSPATH clojure.main src/wizard-game.clj

または、 Leiningenなどのツールを使用して、プロジェクトのクラスパスと依存関係を管理してください。

于 2011-03-28T00:55:37.507 に答える
3

これは、「スタンドアロンの Clojure ファイルを Lein で実行する方法は?」に対する回答です。lein run を参照する必要があります。現在の状態はわかりませんが、スタンドアロンの Lein プラグインがあり、現在では少なくとも一部 (おそらくすべて) の機能がデフォルトで lein に組み込まれています。

lein help run簡単な紹介として、コマンド ラインで a を実行してみてください 。

スタンドアロンの lein-run プロジェクト。ドキュメントが役立つ場合があります。それがビルトインと一致するかどうかは100%確信が持てませんlein runが、私自身の使用法から、少なくとも一部は一致することがわかっています.

https://github.com/sids/lein-run

于 2011-03-28T04:24:41.023 に答える