1

.cljnREPL サーバー プロセスを実行するプロジェクトにあるファイルのコンパイルに問題があります。

  1. を使用して新しいプロジェクトを作成しましたlein new xxx
  2. プロジェクト フォルダで、nREPL を で起動しましたlein repl
  3. 別のターミナル ウィンドウで、クライアントを起動しましたlein repl :connect localhost:12345/repl
  4. 単純な名前空間ファイルを作成し、プロジェクト内の適切な場所に保存しました。

    (ns remote.one)
    (def foo 42)
    
  5. クライアント端末でこの関数を呼び出しました

    (compile 'remote.one) 
    

以下の例外があります。

CompilerException java.lang.ClassNotFoundException: remote.one, compiling:(C:\Users\xxx\AppData\Local\Temp\form-init2429492334116477513.clj:1:1)

ここで、クライアントではなくサーバーでコンパイル呼び出しが実行されることを期待していました。それはまったくできますか?

ありがとう

4

1 に答える 1

1

私はそれを試してみましたが、うまくいきました。初めて試したときに起こったことは、現在のディレクトリをプロジェクトのディレクトリに設定するというステップを逃したことでした。このステップもあなたの説明に欠けているようです。おそらくそれがあなたのケースでは機能しない理由です。

  1. を使用して新しいプロジェクトを作成しますlein new remote
  2. 現在のディレクトリを変更しcd remoteます。
  3. プロジェクトフォルダーからnREPLサーバーを起動しますlein repl :headless (これもあなたの説明とは異なることに気づきました)
  4. 新しいコンソールを開き、 で nREPL クライアントを起動しlein repl :connect localhost:port/replます~/.
  5. で ns 用のファイルを作成します~/remote/src/remote/one.clj
  6. クライアントから評価し(compile 'remote.one)ます。

(Leiningen 2.3.4 on Java 1.7.0 Java HotSpot(TM) 64-Bit Server VMとを使用Clojure 1.5.1)。

于 2014-03-12T14:07:33.803 に答える