在 Windows 上设置 Clojure CLASSPATH

问题描述 投票:0回答:1

我一直在努力修改我的类路径,以便在我的 Windows 计算机上导入 clojure 模块。我已经通过 powershell 更新了我的环境变量,但我得到了同样的错误:

无法在类路径上找到 menu__init.class、menu.clj 或 menu.cljc。

注:

  • 我已经在db.clj中添加了(ns db)
  • 我的所有文件都在同一目录中(app.clj db.clj 等)
  • 我无法使用Leinengen
(ns app
    (:require [clojure.string :as str])
    (:require [db])
    (:require [menu]))

我尝试运行:$env:CLASSPATH="."但它不起作用。我也尝试过“。”和 ”。\” 我在 clj 中运行 (println (System/getenv "CLASSPATH")) 来验证我的类路径,它是有效的,但代码仍然无法运行。

clojure
1个回答
0
投票

此处缺少一些重要信息。 如果

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 ["."]}
© www.soinside.com 2019 - 2024. All rights reserved.