gpt4 book ai didi

clojure - Enclojure REPL 在加载时找不到依赖的 clj 文件

转载 作者:行者123 更新时间:2023-12-04 07:02:11 26 4
gpt4 key购买 nike

我对 Enclojure REPL 和使用它的 clojure 模块有疑问。 Load/Change REPL to file/ns 适用于隔离的 clojure 文件,但会中断一个文件,该文件引用了我尝试从我的项目中使用的另一个 clojure 文件。

以下是具体步骤:

  • 创建一个新项目。
  • 创建clojure模块foobar.clj(命名空间com.acme.foobar)
  • 在 foobar.clj 中定义一个返回值的函数:

    (ns com.acme.foobar
    (:使用 com.acme.othermodule))

    (定义 myfunc1 []
    “一”)
  • 打开 Netbeans IDE REPL
  • 从 foobar.clj 的上下文菜单中选择:
  • 将 REPL 更改为文件/ns
  • 加载
  • 从 REPL 调用 (myfunc1) 函数。这工作得很好:

    com.acme.foobar=> (myfunc1)
    “一”

  • 当我尝试从 foobar 引用其他文件时,问题就开始了。这就是我所做的:
  • 新建clojure模块othermodule.clj

    (ns com.acme.othermodule)

    (defn fromothermodule []
    "b")
  • 现在尝试从 foobar.clj 调用它:

    (定义 myfunc2 []
    (来自其他模块))
  • 从 othermodule.clj 的上下文菜单中,我选择:
  • 将 REPL 更改为文件/ns
  • 加载

  • 为了让 REPL 意识到它应该能够运行新模块。
  • 我对现在引用 othermodule.clj 的 foobar.clj 做同样的事情,但我得到:

  • CompilerException java.io.FileNotFoundException: 无法在类路径上找到 com/acme/othermodule__init.class 或 com/acme/othermodule.clj: (NO_SOURCE_FILE:50)
    com.acme.foobar=>

    此错误消息来自“将 REPL 更改为文件/ns”和“加载”

    我错过了什么?我应该做一些其他的技巧来实现这一点吗?即使是 Run->Clean and Build the main project 的绝望措施也无济于事(这当然会使 REPL 业务非常痛苦)。

    我正在使用 NetBeans 6.7.1 和 enclojure-plugin-2009-11-3.nbm。

    最佳答案

    Eric Thorsen 获得正确的解决方案在谷歌组:

    从窗口菜单创建 REPL 有三种方法。不要使用其中任何一个,而是正确的
    单击项目和“启动项目 REPL”。现在相应地设置了路径。

    关于clojure - Enclojure REPL 在加载时找不到依赖的 clj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674793/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com