我一直在努力修改我的类路径,以便在我的 Windows 计算机上导入 clojure 模块。我已经通过 powershell 更新了我的环境变量,但我得到了同样的错误:
无法在类路径上找到 menu__init.class、menu.clj 或 menu.cljc。
注:
(ns app
(:require [clojure.string :as str])
(:require [db])
(:require [menu]))
我尝试运行:$env:CLASSPATH="."但它不起作用。我也尝试过“。”和 ”。\” 我在 clj 中运行 (println (System/getenv "CLASSPATH")) 来验证我的类路径,它是有效的,但代码仍然无法运行。
此处缺少一些重要信息。 如果
db.clj
在旁边
app.clj
,为什么它有效?
因此忽略
db.clj
由于某种原因起作用,我们可以假设
目前情况如下:
% tree
.
├── app.clj
└── menu.clj
1 directory, 2 files
% clj app.clj
Syntax error (FileNotFoundException) compiling at (app.clj:1:1).
Could not locate menu__init.class, menu.clj or menu.cljc on classpath.
要查看哪些路径
clj
考虑(基本上)类路径,您可以
运行:
% clj -Spath
src:...somejars...
所以
src
是默认值,坚持默认值会让你省心
很多头痛。
在项目中创建一个
src
目录并移动所有 *.clj
文件
那里。 然后运行 clj src/app.clj
(或创建适当的 -main
函数
并通过 clj -m app
) 运行它。
-- 或 --
如果你真的不想有
src
目录,那么添加
一个 deps.edn
文件并配置 :paths
以包含 .
:
{:paths ["."]}